informatique:divers:deplacer_fichiers_linux

rsync - copie robuste des fichiers

Rsync permet de copier des fichiers en local ou en distance. Son algorithme de copie permet de réaliser des copies de backup, du mirroring et des copies standards.

Rsync fonctione sur le schéma rsync <options> <source> <destination>

L'option -P (association de –progress et –partial) est utilisée dans les commandes suivantes afin de pouvoir reprendre un transfert de fichier si le précédent a été interrompu et afficher à l'écran la progression des fichiers.

L'option -v permet d'afficher des informations détaillées à l'écran.

L'option -h permet de simplifier l'affichage des tailles d'octets en ko, Mo, Go ….

rsync -avP /chemin/source/ /chemin/destination/

Dans cet exemple, remplacez /chemin/source/ par le chemin absolu du dossier source que vous souhaitez synchroniser, et /chemin/destination/ par le chemin absolu du dossier de destination que vous souhaitez synchroniser.

L'option -a est utilisée pour le mode archivage, qui conserve les attributs des fichiers lors de la copie ou de la synchronisation.

L'option -v active le mode verbeux, qui affiche des informations supplémentaires sur les fichiers en cours de traitement.

L'option -P, affiche des informations détaillées sur les fichiers en cours de transfert, y compris leur taille, le temps estimé restant, la vitesse de transfert et le pourcentage accompli. Cela peut être utile pour surveiller le progrès de la copie ou de la synchronisation.

Les fichiers ou dossier supprimés dans la source, ne seront pas modifié dans la destination.

Syntaxe sur la source quant il s'agit d'un dossier

Ne pas confondre /chemin/source et /chemin/source/.

rsync -avz /chemin/source/ /chemin/destination/ copie le contenu de /chemin/source/ dans /chemin/destination/.

rsync -avz /chemin/source /chemin/destination/ copie le contenu de /chemin/source dans /chemin/destination/. Le dossier /chemin/destination/source sera créé.

Pour supprimer les fichiers du dossier source après la copie avec rsync, vous pouvez utiliser l'option –remove-source-files ou -r lors de l'exécution de la commande. Voici un exemple de commande pour effectuer cette opération :

rsync --remove-source-files  --prune-empty-dirs -av /chemin/source/ /chemin/destination/

Dans cet exemple, remplacez /chemin/source/ par le chemin absolu du dossier source que vous souhaitez copier, et /chemin/destination/ par le chemin absolu du dossier de destination où vous souhaitez copier les fichiers.

L'option –remove-source-files indique à rsync de supprimer les fichiers source après les avoir copiés. L'option –prune-empty-dirs supprime également les dossiers vides du dossier source après la copie.

L'option -a est utilisée pour activer le mode archivage, ce qui permet de conserver les attributs des fichiers (permissions, dates, etc.) lors de la copie. L'option -v est utilisée pour afficher les détails de la progression de la copie.

Veuillez noter que cette option supprimera définitivement les fichiers du dossier source. Assurez-vous donc d'avoir une sauvegarde appropriée avant d'exécuter cette commande.

Pour supprimer les fichiers et dossiers de destination qui n'existent pas dans la source lors de la synchronisation avec rsync, vous pouvez utiliser l'option –delete lors de l'exécution de la commande. Voici un exemple de commande :

rsync --delete -av /chemin/source/ /chemin/destination/

Dans cet exemple, remplacez /chemin/source/ par le chemin absolu du dossier source que vous souhaitez synchroniser, et /chemin/destination/ par le chemin absolu du dossier de destination que vous souhaitez synchroniser.

L'option –delete indique à rsync de supprimer les fichiers et dossiers de destination qui n'existent pas dans la source. Ainsi, après la synchronisation, le contenu de la destination sera identique à celui de la source, avec la suppression des fichiers et dossiers qui ne sont plus présents dans la source.

L'option -a est utilisée pour activer le mode archivage, ce qui conserve les attributs des fichiers (permissions, dates, etc.) lors de la synchronisation. L'option -v est utilisée pour afficher les détails de la progression de la synchronisation.

Il est important de noter que l'option –delete peut entraîner la suppression de fichiers et de dossiers de manière irréversible. Assurez-vous donc de comprendre les conséquences de cette option et d'avoir une sauvegarde appropriée avant d'exécuter la commande.

rsync -avP \
--delete --backup_dir=/data/tmp_backup \
src/bar /data/tmp

Copie les fichiers et sous-dossiers de src/bar dans le dossier /data/tmp/bar, et en supprimant les fichiers dans /data/tmp/bar qui ne sont pas présent dans src/bar.

L'option –delete suprimer les fichiers dans la destination, alors qu'ils ne sont pas présent dans la source. En complément l'option –backup_dir déplace les fichiers supprimés dans un autre dossier.

Faut-il copier de l'ordinateur vers le NAS, ou copier depuis le NAS ? En d'autres termes, faut-il autoriser le NAS à se connecter sur l'ordinateur ou autoriser l'ordinateur à accéder au NAS ? La question se pose en terme de droits d'accès.
En autorisant l'ordinateur à accéder au NAS, j'autorise tous les programmes s'exécutant sur cet ordinateur à accéder aux fichiers du NAS. Les logiciels malveillants utilsent cette technique pour modifier ou supprimer les sauvegardes.
En autorisant le NAS à accéder aux ordinateurs, je concentre le pouvoir d'accès à tous les fichiers à une entité, le NAS. C'est génant. De surcroit, il faudra veiller que lorsque l'ordinateur n'est pas accessible, de ne pas enclencher la suppression des fichiers.

La bonne réponse est de copier de l'ordinateur vers le NAS. En effet, la connexion au NAS s'effectura avec un compte qui n'aura accès qu'à ses fichiers.

Voici un exemple de copie de l'ordinateur vers le NAS.

1. Copier la clé de l'administrateur du NAS vers le compte root du PC distant.

2. Exécuter depuis le NAS le script ci-dessous.

  • dskval001 est le poste où se trouve le dossier à sauvegarder
  • root est administrateur du poste dskval001
  • sauvegarde est le dossier de sauvegarde
  • /home/valentin est le dossier à sauvegarder sur le poste dskval001
rsync --delete -az -e ssh root@dskval001:/home/valentin/ /media/disk_21/valentin/sauvegarde

Mettre à jour :

rsync -ruP --del --force\
 --log-file=/root/famille.log\
 --ignore-errors\
 --filter="merge /root/rsync_exclusion" \
 /run/media/gerard/home/famille /media/backup
sync_exclusion
- tmp
- .Trash/
- .rsync-filter
- .cache/
- *.bak
- log
- photos/thumb
- lost+found/
- *~
- .*
  • informatique/divers/deplacer_fichiers_linux.txt
  • Dernière modification : 2023/05/31 21:56
  • de Cédric ABONNEL