Présentation de rsync
Dans ce tutoriel, je vais vous expliquer comment utiliser rsync
(Remote Synchronization ) pour faire des copies / sauvegarde sur Linux.
rsyn
c est outil de synchronisation de dossier disponible sur la plupart des distributions Linux et celui-ci est souvent mis en place pour des faire sauvegarde de fichiers / sites web …
En utilisant de façon successif la même commande, c’est à dire ayant la même source et destination, rync
va ensuite seulement copier les nouveaux éléments et ceux ayant étaient modifiés.
L’intérêt d’utiliser rsync, c’est la prise en charge native de ssh qui permet de copier vers un serveur distant ou depuis un serveur distant.
Utilisation de rync
Maintenant, on va voir comment fonctionne rsync.
Comme la plupart des logiciels de copie, il faut lui spécifier une source et une destination :
rsync -parameters source/ destination/
Les paramètres les plus couramment utilisés sont :
- -a / –archive : permet de faire une copie récursive en préservant quasiment toutes les propriétés des éléments copiés.
- -v / –verbose : permet d’afficher la progression
Pour illustrer ce tutoriel, on va sauvegarde le dossier /etc/ansible/
dans un premier temps, sur le même serveur dans un dossier spécifique /backup/ansible/
puis dans un second temps, sur un serveur distant.
Voici le dossier source :
Pour sauvegarder le fichier voici la commande utiliser :
sudo rsync -a /etc/ansible/ /backup/ansible/
Comme on peut le voir, la commande n’a pas de retour, si on souhaite avec des informations sur le transfert, il faut ajouter le paramètre
-v
.
Si je regarde dans le dossier /backup/ansible/, les dossiers et fichiers sont bien copiés.
Attention
/
.Les deux commandes suivantes n’ont pas le même résultat :
rsync -a /etc/ansible /backup/ansible/
rsync -a /etc/ansible/ /backup/ansible/
La première commande va créer le dossier source en place dans la destination, ce qui veut dire que l’on aurait retrouver la sauvegarde dans le dossier suivant :
/backup/ansible/ansible/
alors que la seconde commande à copier le contenu de la source dans le dossier de destination.Pour afficher la progression et le résultat de la commande rsync
il faut ajouter le paramètre -v
sudo rsync -av /etc/ansible/ /backup/ansible/
Si je passe la même commande à la suite, on peut voir que rien n’a été copié car aucun modification a été effectuée.
En présentation, je vous ai dit que rsync
prenait en charge nativement ssh pour faire la sauvegarde vers un serveur distant et c’est ce que nous allons avoir maintenant.
Le serveur distant peut être soit la source ou la destination (peut être les deux même temps mais j’ai pas essayé !).
Voici la syntaxe pour indiquer le serveur distant : <user>@<server>:/path/use/by/rsync/
.
Pour sauvegarder le dossier /etc/ansible/ sur un serveur distant :
sudo rsync -avz /etc/ansible/ admin@10.X.Y.7:/backup/ansible/
Lors de la validation de la commande, il faut indiquer le mot de passe du compte sur le serveur distant.
Comme vous pouvez le voir, j’ai ajouté le paramètre -z qui permet d’activer la compression lors du transfert.
Avertissement
Sur le serveur de destination, je retrouve bien mes fichiers et dossiers qui ont été transférés par rsync
.
Sur Internet, vous trouverez aussi cette syntaxe de commande :
sudo rsync -e ssh -avz /etc/ansible/ admin@10.X.Y.7:/backup/ansible/
Le paramètre
-e
est ajouté pour indiquer le shell distant (remote shell)
Si vous souhaitez faire un script de sauvegarde vers un serveur distant, il faudra mettre en place une authentification ssh par clé.
Paramètres supplémentaires pour rsync
Pour finir ce premier tutoriel dédié à rsync
voici quelques paramètres utiles :
--delete-after
: cette option permet de supprimer les fichiers dans le dossier de destination qui ne sont plus présent dans la source--remove-source-files
: supprimer les fichiers de la source après le transfert, cela revient à faire un couper / coller, les dossiers ne sont pas supprimés.--exclude
: permet d’exclure des fichiers ou des dossiers--exclude="*.log" --exclude="temp"
en ajoutant cela à la commande rsync, on va exclure tous les fichiers avec l’extension .log et les dossiers ayant comme nom temp.
Vous avez maintenant toutes les informations pour mettre en place des scripts des sauvegardes en utilisant rsync
.
En complément, voici la page man de rsync
avec tous les paramètres disponibles.
Dans un projet tutoriel, je vous expliquerai comment faire des sauvegarde différentielle et incrémentielle avec rsync.