Est-il sûr d'utiliser rsync
lorsque le système de fichiers source est monté et accessible en écriture, en supposant qu'il puisse très bien être modifié pendant que rsync est en cours d'exécution ? Je présume que dans des conditions de course, je n'obtiendrai peut-être pas les dernières modifications, mais y a-t-il un risque de corruption ?
Réponse acceptée :
Utilisation de rsync
est assez sûr sur les systèmes de fichiers montés en lecture-écriture. Lorsque rsync
est 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 qu'un fichier change après rsync
a construit la liste des fichiers, il copiera le nouveau teneur. Cependant, lorsqu'un nouveau fichier est ajouté après rsync
a constitué sa liste de fichiers, ce nouveau fichier n'est pas copié. Si un fichier est supprimé après rsync
a construit la liste des fichiers, rsync avertira qu'il n'a pas pu copier ce fichier. Gardez à l'esprit que rsync
n'est pas un instantané, cela signifie qu'il est difficile de dire à quel moment rsync
copié les donné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 genre de cohérence.
MODIF : Comme d'autres l'ont souligné dans les commentaires, il est possible que rsync
pourrait en fait corrompre votre fichier. 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.