GNU/Linux >> Linux Esercitazione >  >> Linux

L'uso di Tar mentre la directory di origine viene aggiornata è sicuro?

Devo fare una domanda simile a questa.

Negli scenari in cui esegui il backup della directory con tar e

  1. nuovi file/dir vengono aggiunti

  2. i file/dir correnti vengono modificati e eliminato

puoi aspettarti un risultato sicuro?

Per risultato sicuro Intendo qualcosa come:

  1. tar non rovinerà qualcosa nella directory/sottodirectory sorgente
  2. tar verrà aggiunto all'archivio come trovato al momento della creazione dell'archivio
  3. Il segnale di successo verrà emesso anche se si sono verificate le modifiche descritte

Risposta accettata:

1. tar non rovinerà qualcosa nella directory/sottodirectory sorgente

Vero, a meno che tu non consideri l'aggiornamento dei tempi di accesso come un errore. A parte questo, tar non cambia nulla nell'albero dei sorgenti.

2. tar si aggiungerà all'archivio così come si trovava al momento della creazione dell'archivio

Vero, per un certo valore di "nel momento". Se l'albero dei sorgenti cambia mentre tar lo sta leggendo, ciò che è incluso nell'archivio è alquanto imprevedibile. In particolare, se un file cambia mentre tar lo sta leggendo, non vi è alcuna garanzia che tar scriva una copia del file com'era in un determinato momento. Ad esempio, è possibile avere:

  • tar legge i byte 0–4095 di foo .
  • Alcuni programmi scrivono su foo , modificando i byte 4095–4096 in un'unica operazione di scrittura.
  • tar legge i byte 4096–8191 di foo .

Quindi il contenuto di foo nell'archivio non c'è né il vecchio contenuto né il nuovo contenuto, è un misto dei due. Un altro esempio è che se un file viene rinominato mentre tar sta leggendo l'albero dei sorgenti, tar potrebbe saltarlo del tutto.

3. il segnale di successo verrà emesso anche se si sono verificate le modifiche descritte

No, non necessariamente. Se tar rileva che la fonte è cambiata durante la lettura, potrebbe lamentarsi e restituire uno stato di errore. In particolare, tar deve scrivere la dimensione di un file nell'archivio prima di scrivere il contenuto, quindi legge prima la dimensione di ogni file sorgente. Se raggiunge la fine del file prima di raggiungere la dimensione registrata, non esiste un modo ovvio per ripristinarlo, quindi qualsiasi implementazione di tar dovrebbe lamentarsi almeno in quel caso.

Per eseguire backup in modo sicuro, utilizza gli strumenti a livello di file system o volume per creare uno snapshot ed esegui il backup dello snapshot.

Correlati:Linux – virtualbox KALI guest sull'host Ubuntu non regola automaticamente la risoluzione?
Linux
  1. [Linux]:come escludere la directory quando si utilizza il comando shell "tar".

  2. Usando –exclude con il comando Du?

  3. Come gzippare una directory in Linux

  4. cp:ousing directory – errore durante la copia di una directory in Linux

  5. Usando e in Bash mentre il ciclo

Come creare una directory in Linux usando il comando mkdir

Creare una directory di destinazione durante l'estrazione di Tarball?

Hp-ux 9:backup del filesystem utilizzando Tar?

Troncare un file mentre è in uso (Linux)

Esclusione della directory durante la creazione di un file .tar.gz

Controlla se una directory è vuota usando C su Linux