È sicuro usare rsync
quando il filesystem di origine è montato e scrivibile, supponendo che possa benissimo essere modificato mentre rsync è in esecuzione? Presumo che in condizioni di gara potrei non ricevere le ultime modifiche, ma c'è qualche rischio di corruzione?
Risposta accettata:
Usando rsync
è abbastanza sicuro sui file system montati in lettura e scrittura. Quando rsync
viene avviato crea un elenco di file e quindi inizia a copiare quei file. Questo elenco di file non viene aggiornato durante l'esecuzione. I dati effettivi vengono quindi copiati.
Ciò significa quando un file cambia dopo rsync
ha creato l'elenco dei file, copierà il nuovo contenuto. Tuttavia, quando viene aggiunto un nuovo file dopo rsync
ha creato la sua lista di file, questo nuovo file non viene copiato. Se un file viene eliminato dopo rsync
ha creato l'elenco dei file, rsync avviserà che non è stato possibile copiare quel file. Tieni presente che rsync
non è un'istantanea, questo significa che è difficile dire in quale momento rsync
copiato i dati.
Le istantanee del file system o del gestore del volume (ad es. utilizzando ZFS o LVM), d'altra parte, vengono create istantaneamente e sono un'istantanea coerente del file system in un momento ben definito che può quindi essere copiata su un altro host. rsync
non offre questo tipo di coerenza.
MODIFICA: Come altri hanno sottolineato nei commenti, è possibile che rsync
potrebbe effettivamente corrompere il tuo file. Quando rsync inizia a leggere un file e un'applicazione scrive quel file contemporaneamente, potresti ritrovarti con un file danneggiato.