← retour aux snippets

rsync: synchroniser en vérifiant l'intégrité

Utiliser --checksum et --partial pour garantir que les fichiers sont identiques malgré horloges décalées.

bash filesystem #rsync#checksum#sync

objectif

S’assurer que les fichiers distants correspondent bit-à-bit, sans se fier aux timestamps.

code minimal

rsync -a --checksum --delete --partial --info=stats2 src/ dest/

utilisation

# transfert SSH avec compression et reprise
rsync -az --checksum --partial --progress -e 'ssh -o ControlMaster=auto -o ControlPersist=60s' src/ user@host:/path/

# vérifier ensuite via sha256
find src -type f -print0 | xargs -0 -I{} sh -c 'sha256sum "{}" | sed "s#  {}##"' | sort > src.sha256
ssh user@host 'cd /path && find . -type f -print0 | xargs -0 sha256sum | sort' > dest.sha256
diff -u src.sha256 dest.sha256

variante(s) utile(s)

# réduire les lectures disques (se fier aux tailles et mtime sauf en cas de doute)
rsync -a --size-only src/ dest/

notes

  • --checksum lit les deux côtés → plus lent mais fiable.
  • combinez avec un hash global pour un audit complet.