Est-il sûr à utiliser rsync
lorsque le système de fichiers source est monté et accessible en écriture, en supposant qu'il peut très bien être modifié pendant que rsync est en cours d'exécution? Je suppose que dans des conditions de course, je ne pourrai pas obtenir les dernières modifications, mais y a-t-il un risque de corruption?
rsync
backup
concurrency
brianmearns
la source
la source
rsync
puisse vraiment faire quoi que ce soit, seul un instantané peut le faire, mais je suis plus préoccupé par la corruption dans un fichier.Réponses:
L'utilisation
rsync
est assez sûre sur les systèmes de fichiers montés en lecture-écriture. Une foisrsync
démarré, il crée une liste de fichiers, puis commence à copier ces fichiers. Cette liste de fichiers n'est pas mise à jour pendant l'exécution. Les données réelles sont ensuite copiées.Cela signifie que lorsqu'un fichier change après
rsync
avoir construit la liste des fichiers, il copie le nouveau contenu. Toutefois, lorsqu'un nouveau fichier est ajouté aprèsrsync
avoir créé sa liste de fichiers, ce nouveau fichier n'est pas copié. Si un fichier est supprimé aprèsrsync
avoir construit la liste des fichiers, rsync avertira qu'il n'a pas pu copier ce fichier. N'oubliez pas que cersync
n'est pas un instantané, cela signifie qu'il est difficile de dire à quel moment dans le tempsrsync
les données ont été copiées.Les instantanés du système de fichiers ou du gestionnaire de volumes (par exemple en utilisant ZFS ou LVM), d'autre part, sont créés instantanément et constituent un instantané cohérent du système de fichiers à un moment bien défini qui peut ensuite être copié sur un autre hôte.
rsync
n'offre pas ce type de cohérence.EDIT: Comme d'autres l'ont souligné dans les commentaires, il est possible que
rsync
votre fichier soit corrompu. Lorsque rsync commence à lire un fichier et qu'une application écrit ce fichier en même temps, vous pouvez vous retrouver avec un fichier corrompu.la source