Skip to content

Instantly share code, notes, and snippets.

@lpenaud
Last active February 25, 2025 09:00
Show Gist options
  • Save lpenaud/be58cfa2d2ac134fc75659ceb8e3b42b to your computer and use it in GitHub Desktop.
Save lpenaud/be58cfa2d2ac134fc75659ceb8e3b42b to your computer and use it in GitHub Desktop.
Backup files

Backup files with rsync

Incremental backup

rsync -a --delete -Pau INDIR [INDIRS...] OUTDIR
  • -a: Archive mode copy the access rights.
  • --delete: Remove files if there aren't in the source directory anymore.
  • --progress: Display the progression.
  • --partial: keep partially transferred files
  • -u: Update only file with modification on source.
  • --hard-links: Create hardlinks to the destination directory like the source one.
  • --inplace: Write directly the file instead of temp one.
  • --append: Write destinations file without replace it (checksum verification).

Archive options

-a implies :

  • -r --recursive
  • -l --links: Recreate symlink
  • -p --perms: Copy files permissions (chmod)
  • -t --times: Preserve file timestamps (optimising the comparison)
  • -g --group: Copy group owner (gid)
  • -o --owner: Copy user owner (uid)
  • -D: --devices --specials
  • --devices: Transfert devices files (like on /dev directory)
  • --specials: Transfert special file such as sockets or fifo

Warning

Traling slash are important! BSD rules : dir/ => dest dir => dest/dir

Sources

Sauvegarder des fichiers

Sauvegarde incrémentale avec rsync

rsync -a --delete -P INDIR [INDIRS...] OUTDIR
  • -a : Mode archive copie les droits d’accès.
  • --delete : Supprime les fichiers qui ne sont plus dans le répertoire source.
  • --progress: Affiche la progression.
  • --partial: Garde le fichier partiellement transféré.
  • -u : Met à jour les fichiers de destination seulement si ceux si ont été modifié dans la source.
  • --hard-links : Créer les liens physiques dans le répertoire de destination comme ceux de la source.
  • --inplace : Écris directement le fichier de destination sans passer par un fichier temporaire.
  • --append : Écris le fichier de destination sans le remplacer entièrement (validation par somme de contrôle)

L'option archive

-a implique :

  • -r --recursive
  • -l --links : Recréer les liens symbolique dans la destination.
  • -p --perms : Copie les permission du fichier (chmod)
  • -t --times : Copie les indicateurs temporels du fichier (Optimisation de la comparaison)
  • -g --group: Copie le groupe propriétaire (gid)
  • -o --owner: Copie l'utilisateur propriétaire (uid)
  • -D: --devices --specials
  • --devices: Transfert les fichiers périphérique (comme ceux dans le répertoire /dev)
  • --specials: Transfert les fichiers spéciaux comme les sockets ou les fifo.

Warning

La dernière barre oblique est importante ! Régles de BSD : dir/ => dest dir => dest/dir

Sources

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment