informatique:divers:deplacer_fichiers_linux

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
informatique:divers:deplacer_fichiers_linux [2023/05/31 19:42] – [1. Copier un dossier et son contenu] Cédric ABONNELinformatique:divers:deplacer_fichiers_linux [2023/05/31 21:56] (Version actuelle) – [Supprimer les fichiers sources] Cédric ABONNEL
Ligne 1: Ligne 1:
 +====== rsync - copie robuste des fichiers ======
  
 +{{  :informatique:divers:pasted:20211101-193441.png}}
 +
 +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** ....
 +
 +===== - Copier un dossier et son contenu =====
 +
 +<code>
 +rsync -avP /chemin/source/ /chemin/destination/
 +</code>
 +
 +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éé.
 +
 +==== Supprimer les fichiers et dossiers sources ====
 +
 +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 :
 +
 +<code BASH>
 +rsync --remove-source-files  --prune-empty-dirs -av /chemin/source/ /chemin/destination/
 +</code>
 +
 +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.
 +
 +
 +==== Supprimer les fichiers et dossiers de destination qui n'existent pas dans la source ====
 +
 +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 :
 +
 +<code>
 +rsync --delete -av /chemin/source/ /chemin/destination/
 +</code>
 +
 +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.
 +
 +===== - Copier un dossier et son contenu avec archive des fichiers supprimés =====
 +
 +<code BASH>
 +rsync -avP \
 +--delete --backup_dir=/data/tmp_backup \
 +src/bar /data/tmp
 +</code>
 +
 +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.
 +
 +
 +
 +===== - Sauvegarder sur NAS =====
 +
 +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**
 +
 +<code>
 +rsync --delete -az -e ssh root@dskval001:/home/valentin/ /media/disk_21/valentin/sauvegarde
 +</code>
 +
 +
 +
 +
 +===== - Divers =====
 +
 +Mettre à jour :
 +
 +<code>
 +rsync -ruP --del --force\
 + --log-file=/root/famille.log\
 + --ignore-errors\
 + --filter="merge /root/rsync_exclusion" \
 + /run/media/gerard/home/famille /media/backup
 +</code>
 +
 +
 +
 +<code bash sync_exclusion>
 +- tmp
 +- .Trash/
 +- .rsync-filter
 +- .cache/
 +- *.bak
 +- log
 +- photos/thumb
 +- lost+found/
 +- *~
 +- .*
 +</code>
  • informatique/divers/deplacer_fichiers_linux.txt
  • Dernière modification : 2023/05/31 21:56
  • de Cédric ABONNEL