Download Amministrare GNU/Linux

Transcript
186
CAPITOLO 4. AMMINISTRAZIONE ORDINARIA DEL SISTEMA
Per estrarre i dati inseriti in un archivio si deve utilizzare l’opzione --extract o -x, di
nuovo è necessario specificare l’archivio da cui si estraggono i file con -f. Come per la creazione
l’uso dell’opzione -v permette di ottenere la lista dei file che vengono estratti dall’archivio.
L’estrazione avviene sempre nella directory corrente, e qualora si siano archiviate intere directory
ne viene ricreata l’intera gerarchia. Se non si specifica nessun argomento il comando estrae il
contenuto completo dell’archivio, ma è possibile estrarre un singolo file fornendone il nome (o
il pathname se questo è collocato in una sottodirectory), che si può ottenere dalla lista fornita
dall’opzione -t.
Si tenga presente infine che nell’estrazione il comando ricrea i file con tutte le caratteristiche
che essi avevano nel sistema su cui sono stati creati; questo significa anche che vengono mantenuti i permessi e l’utente ed il gruppo proprietario del file, utente e gruppo che nel sistema corrente
possono non esistere o essere del tutto diversi.15 Di questo può essere necessario dover tenere
conto quando si estraggono degli archivi creati da altri (come quelli dei pacchetti sorgenti di cui
parleremo in sez. 4.2). Inoltre dato che alcuni filesystem (come il vfat di Windows) non supportano la presenza di permessi, utenti e gruppi, il programma può lamentarsi dell’impossibilità
di ricreare questi attributi dei file; un altro errore che viene segnalato, in caso di impostazione
sbagliata dell’ora di sistema, è quando i file che vengono creati hanno dei tempi situati nel futuro.
Una delle capacità più interessanti di tar è quella di saper gestire backup incrementali con
l’uso dell’opzione -g. In questo caso l’opzione prende come parametro il nome di un file, detto
di snapshot, su cui tar si appoggia per determinare quali sono stati i file modificati dall’ultimo
backup.16 Alla prima esecuzione, quando il file non esiste, questo viene creato ed alle successive
esecuzioni sarà possibile creare nuovi archivi contenenti solo i file modificati dopo l’esecuzione del
backup a cui fa riferimento il file di snapshot. Ad ogni esecuzione con -g il file di snapshot viene
aggiornato con tutti i cambiamenti intercorsi, per cui sarà possibile, utilizzando sempre lo stesso
file, eseguire backup incrementali. È inoltre possibile, utilizzando una copia file di snapshot
creato la prima volta nell’esecuzione del backup completo, effettuare backup differenziali.
Un secondo comando usato storicamente nei sistemi unix-like per la gestione dell’archiviazione di file e directory è cpio, che come tar permette di estrarre ed inserire file e directory
all’interno di un singolo file di archivio, per il quale è anche in grado di usare lo stesso formato
usato da tar. A differenza di tar però cpio prende sempre come argomento di ingresso una
lista di file.
Il comando cpio ha tre modalità operative, che devono essere sempre indicate ad ogni invocazione del programma. In modalità copy-out il comando copia i file dentro l’archivio e per
attivarla deve essere specificata l’opzione -o (o --create). Il programma legge una lista di
file dallo standard input e scrive l’archivio risultante sullo standard output, ma è uso comune
generare la lista direttamente con l’uso di find o ls. Si potranno cioè replicare le operazioni di
archiviazione viste in precedenza con tar con qualcosa del tipo:
piccardi@anarres:~/truedoc/corso$ ls *.tex | cpio -ov > dispense.cpio
advadmin.tex
appendici.tex
...
stradmin.tex
struttura.tex
3974 blocks
mentre per archiviare tutta una directory si dovrà eseguire:
15
utente e gruppo vengono mantenuti soltanto se l’archivio viene estratto dall’amministratore, gli utenti normali
infatti (vedi sez. 1.4.3) non possono creare file con proprietario diverso da se stessi e con gruppo diverso da quelli
a cui appartengono.
16
vengono utilizzate le date di ultima modifica per cui è essenziale che il tempo di sistema (vedi sez. 2.4.3) non
sia stato modificato inopportunamente.