Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
rsync [Le 24/05/2022, 14:20] jcj [Créer un dossier miroir] |
rsync [Le 23/03/2024, 12:44] 86.202.8.12 |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | |||
{{tag>sauvegarde synchronisation}} | {{tag>sauvegarde synchronisation}} | ||
Ligne 7: | Ligne 6: | ||
===== Présentation ===== | ===== Présentation ===== | ||
- | **rsync** (pour **r**emote **sync**hronization ou synchronisation à distance), est un logiciel ((sous licence **[[wpfr>Licence_publique_générale_GNU|GNU GPL]]**)) de synchronisation de fichiers. Il est fréquemment utilisé pour mettre en place des systèmes de [[:sauvegarde]] distante ou des [[points_de_restauration_pour_un_systeme_linux|points de restauration]] du système (via l'interface [[timeshift|Timeshift]]). | + | **rsync** (pour **r**emote **sync**hronization ou synchronisation à distance) est un logiciel ((sous licence **[[wpfr>Licence_publique_générale_GNU|GNU GPL]]**)) de synchronisation de fichiers. Il est fréquemment utilisé pour mettre en place des systèmes de [[:sauvegarde]] distante ou des [[points_de_restauration_pour_un_systeme_linux|points de restauration]] du système (via l'interface [[timeshift|Timeshift]]). |
- | rsync travaille de manière unidirectionnelle c'est-à-dire qu'il synchronise, copie ou actualise les données d'une source (locale ou distante) vers une destination (locale ou distante) en ne transférant que les octets des fichiers qui ont été modifiés. | + | rsync travaille de manière unidirectionnelle c'est-à-dire qu'il synchronise, copie ou actualise les données d'une source (locale ou distante) vers une destination (locale ou distante) en ne transférant que les octets des fichiers qui ont été modifiés. |
<note help>La notion d’unidirectionnalité semble souvent mal comprise : elle signifie qu'en une commande, la synchronisation ne peut se faire que dans un sens. Rien n'empêche ensuite de relancer la commande une seconde fois dans l'autre sens !</note> | <note help>La notion d’unidirectionnalité semble souvent mal comprise : elle signifie qu'en une commande, la synchronisation ne peut se faire que dans un sens. Rien n'empêche ensuite de relancer la commande une seconde fois dans l'autre sens !</note> | ||
Ligne 19: | Ligne 18: | ||
Pour les personnes qui n’aiment pas la ligne de commande, **il existe une interface graphique à rsync : [[grsync|Grsync]] !!** | Pour les personnes qui n’aiment pas la ligne de commande, **il existe une interface graphique à rsync : [[grsync|Grsync]] !!** | ||
+ | |||
===== Utilisation ===== | ===== Utilisation ===== | ||
Comme l'indique le manuel : | Comme l'indique le manuel : | ||
Ligne 27: | Ligne 27: | ||
<code>rsync source/ destination/</code> | <code>rsync source/ destination/</code> | ||
- | L'intérêt est une utilisation à travers le réseau. **rsync** utilise [[SSH]] par défaut. Un exemple : | + | En __local__, cela peut donner cela pour une copie/synchro de votre répertoire vidéo vers un disque dur externe (de sauvegarde) [[montage|monté]] dans **/media/user/** |
+ | <code>rsync -av /home/user/Vidéos/ /media/user/film_music/Vidéos/</code> | ||
+ | L'option "**v**" affiche les fichiers sauvegardés au fur et à mesure. Pour l'option "**a**", voir plus bas. | ||
+ | //user// est à remplacer par votre identifiant Ubuntu.\\ | ||
+ | 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 : | ||
<code>rsync -az source/ login@serveur.org:/destination/</code> | <code>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) | ||
Ligne 83: | Ligne 89: | ||
==== Exclure des fichiers ==== | ==== Exclure des fichiers ==== | ||
On peut exclure des fichiers/dossiers selon beaucoup de schémas. C'est utile pour ne pas sauvegarder le cache, les fichiers temporaires, le répertoire //.git//, la corbeille, etc… | On peut exclure des fichiers/dossiers selon beaucoup de schémas. C'est utile pour ne pas sauvegarder le cache, les fichiers temporaires, le répertoire //.git//, la corbeille, etc… | ||
+ | |||
+ | L'exclusion d'un dossier est identique à l'exclusion d'un fichier : il suffit d'indiquer le chemin d'accès relatif au répertoire source. | ||
* Liste dans la commande : <code bash>rsync --exclude="nom_de_dossier" --exclude="- autre_nom_de_dossier" source/ destination/</code> | * Liste dans la commande : <code bash>rsync --exclude="nom_de_dossier" --exclude="- autre_nom_de_dossier" source/ destination/</code> | ||
Ligne 98: | Ligne 106: | ||
==== Quelques options ==== | ==== Quelques options ==== | ||
- | De nombreuses options existent (voir [[http://www.delafond.org/traducmanfr/man/man1/rsync.1.html|ici]]), en voici quelques une : \\ | + | De nombreuses options existent (voir [[http://www.delafond.org/traducmanfr/man/man1/rsync.1.html|ici]]), en voici quelques unes : \\ |
- | **-a** : archive => préserve les dates, permissions, etc ... des fichiers. Inclus l'option récursivité. Option à utiliser quand on veut transférer des répertoires entiers avec leurs sous-répertoires en préservant toutes les caractéristiques des fichiers.\\ | + | **-a** : archive => préserve les dates, permissions, etc ... des fichiers. Inclut l'option récursivité. Option à utiliser quand on veut transférer des répertoires entiers avec leurs sous-répertoires en préservant toutes les caractéristiques des fichiers.\\ |
**-r** : la synchro est récursive (elle prend les sous-répertoires). Est inclus dans l'option **-a**\\ | **-r** : la synchro est récursive (elle prend les sous-répertoires). Est inclus dans l'option **-a**\\ | ||
**-v** : verbeux (affichage de ce que fait la commande pendant qu'elle le fait).\\ | **-v** : verbeux (affichage de ce que fait la commande pendant qu'elle le fait).\\ | ||
**-l** : copie les liens symboliques comme liens symboliques. Est inclus dans l'option **-a**\\ | **-l** : copie les liens symboliques comme liens symboliques. Est inclus dans l'option **-a**\\ | ||
**-L** : remplace les liens symboliques par les fichiers référencés.\\ | **-L** : remplace les liens symboliques par les fichiers référencés.\\ | ||
- | **--remove-sent-files** : les fichiers envoyés sont __supprimés__ de chez l'émetteur. Il ne s'agit donc plus de faire une synchro mais bien de faire un __transfert__.\\ | + | **%%--%%remove-sent-files** : les fichiers envoyés sont __supprimés__ de chez l'émetteur. Il ne s'agit donc plus de faire une synchro mais bien de faire un __transfert__.\\ |
- | **--delete** : efface sur la cible les fichiers qui ont disparus du répertoire de départ. Option très importante qui permet d'être sûr que la copie est identique à l'original. Mais si on se trompe sur l'original, on perd la copie.\\ | + | **%%--%%delete** : efface sur la cible les fichiers qui ont disparu du répertoire de départ. Option très importante qui permet d'être sûr que la copie est identique à l'original. Mais si on se trompe sur l'original, on perd la copie.\\ |
- | **--exclude=MOTIF** : exclus de la synchro les fichiers correspondant au MOTIF (par exemple ***.txt** pour exclure les fichiers avec l'extension **.txt**).\\ | + | **%%--%%exclude=MOTIF** : exclut de la synchro les fichiers correspondant au MOTIF (par exemple ***.txt** pour exclure les fichiers avec l'extension **.txt**).\\ |
**-z** : comprime les fichiers pendant le transfert. N'a d’intérêt que pour des transferts à travers des réseaux, car sinon la compression / décompression fait perdre du temps. | **-z** : comprime les fichiers pendant le transfert. N'a d’intérêt que pour des transferts à travers des réseaux, car sinon la compression / décompression fait perdre du temps. | ||
==== Interface graphique : Grsync ou Timeshift ==== | ==== Interface graphique : Grsync ou Timeshift ==== |