| Les deux révisions précédentesRévision précédente | |
| rsync [Le 03/09/2026, 01:42] – [Utilisation] lien man krodelabestiole | rsync [Le 03/09/2026, 01:52] (Version actuelle) – [Utilisation] dossier -> répertoire | mise en forme krodelabestiole |
|---|
| ===== Utilisation ===== | ===== Utilisation ===== |
| |
| Comme l'indique le manuel : | Comme l'indique le [[man>rsync|manuel]]\_: |
| |
| "//**rsync** est un programme très similaire à **rcp**, mais possède bien plus d'options et utilise le protocole de mise à jour à distance **rsync** afin d'accélérer significativement le transfert de fichiers lorsque le fichier de destination existe déjà.//" | "//**rsync** est un programme très similaire à **rcp**, mais possède bien plus d'options et utilise le protocole de mise à jour à distance **rsync** afin d'accélérer significativement le transfert de fichiers lorsque le fichier de destination existe déjà.//" |
| |
| L'appel de base de la commande ''[[man>rsync]]'' : | L'appel de base de la commande ''[[man>rsync]]''\_: |
| <code bash>rsync source/ destination/</code> | <code bash>rsync source/ destination/</code> |
| |
| En **local**, pour une copie/synchro de votre répertoire vidéo vers un disque dur externe [[:montage|monté]] dans ''/media/$USER/'', cela donne : | En **local**, pour une copie/synchro de votre répertoire vidéo vers un disque dur externe [[:montage|monté]] dans ''/media/$USER/'', cela donne\_: |
| <code bash>rsync -av /home/$USER/Vidéos/ /media/$USER/film_music/Vidéos/</code> | <code bash>rsync -av /home/$USER/Vidéos/ /media/$USER/film_music/Vidéos/</code> |
| L'option ''-v'' affiche les fichiers copiés au fur et à mesure. Pour l'option ''-a'', voir plus bas. | L'option ''-v'' affiche les fichiers copiés au fur et à mesure. Pour l'option ''-a'', voir plus bas. |
| Vous pouvez relancer cette commande à chaque nouvelle synchro, seuls les nouveaux fichiers seront synchronisés. | Vous pouvez relancer cette commande à chaque nouvelle synchro, seuls les nouveaux fichiers seront synchronisés. |
| |
| En **réseau**, **rsync** utilise [[:SSH]] par défaut. Un exemple : | En **[[:réseau]]**, **rsync** utilise [[:SSH]] par défaut. Un exemple\_: |
| <code bash>rsync -az source/ login@serveur.org:/destination/</code> | <code bash>rsync -az source/ login@serveur.org:/destination/</code> |
| où: | où: |
| * ''-a'' ou ''%%--%%archive'' : est un moyen rapide de dire que vous voulez la récursivité et préserver pratiquement tout. La seule exception est que si ''%%--%%files-from'' a été spécifiée alors ''-r'' n'est pas utilisée. Ceci est équivalent à ''-rlptgoD''. | * ''-a'' ou ''%%--%%archive''\_: est un moyen rapide de dire que vous voulez la récursivité et préserver pratiquement tout. La seule exception est que si ''%%--%%files-from'' a été spécifiée alors ''-r'' n'est pas utilisée. Ceci est équivalent à ''-rlptgoD''. |
| * ''-z'' ou ''%%--%%compress'' : compresse les données lors du transfert. (Limite la bande passante mais augmente l'utilisation processeur et le temps de transfert : inutile en réseau local ou avec très bon débit) | * ''-z'' ou ''%%--%%compress''\_: compresse les données lors du transfert. (Limite la bande passante mais augmente l'utilisation processeur et le temps de transfert\_: inutile en réseau local ou avec très bon débit) |
| |
| <note important> | <note important> |
| Attention, il convient d'être vigilant dans l'utilisation ou non du slash (« / ») dans le chemin de la source. Ainsi, les deux commandes suivantes **ne sont pas** équivalentes : | Attention, il convient d'être vigilant dans l'utilisation ou non du dernier slash ''/'' dans le [[:chemins|chemin]] de la source. |
| | |
| | Ainsi, les deux commandes suivantes ne sont //pas// équivalentes\_: |
| <code bash>rsync source destination/ | <code bash>rsync source destination/ |
| rsync source/ destination/</code> | rsync source/ destination/</code> |
| |
| En effet, la première commande va **_créer_** le dossier source dans le dossier destination en ajoutant donc un niveau dans l'arborescence. La deuxième commande copie le **_contenu_** du dossier source dans le dossier destination. | * En effet, la première commande va //créer le répertoire source// dans le répertoire destination en ajoutant donc un niveau dans l'arborescence de destination. |
| Autrement dit, les deux commandes suivantes sont, elles, équivalentes* : | * La deuxième commande copie le //contenu// du répertoire source dans le répertoire destination. |
| | Autrement dit, les deux commandes suivantes sont, elles, équivalentes*\_: |
| <code bash>rsync source destination/ | <code bash>rsync source destination/ |
| rsync source/ destination/source/</code> | rsync source/ destination/source/</code> |
| |
| Enfin, il faut noter que l'utilisation ou non d'un slash final dans le chemin de la destination n'a aucune incidence. Les deux commandes suivantes sont donc équivalentes : | Enfin, il faut noter que l'utilisation ou non d'un slash final dans le chemin de la destination n'a aucune incidence. Les deux commandes suivantes sont donc équivalentes\_: |
| |
| <code bash>rsync source destination/ | <code bash>rsync source destination/ |
| rsync source destination</code> | rsync source destination</code> |
| |
| * Sauf dans le cas où source est un lien symbolique vers un répertoire, la première commande ne copie que le lien, tandis que la seconde travaille bien à l'intérieur du répertoire | * Sauf dans le cas où source est un [[:lien_physique_et_symbolique|lien symbolique]] vers un répertoire, la première commande ne copie que le lien, tandis que la seconde travaille bien à l'intérieur du répertoire. |
| </note> | </note> |
| <note> | <note> |