Site icon RDR-IT

rsync : comment copier / sauvegarder des fichiers sur Linux

Présentation de rsync

Dans ce tutoriel, je vais vous expliquer comment utiliser rsync (Remote Synchronization ) pour faire des copies / sauvegarde sur Linux.

rsync 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 :

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

Comme vous avez pu le voir dans la commande pour effectuer la copie, à la fin de la source il y a un /.

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

Le compte utilisé pour la connexion au serveur distant, doit avoir les droits d’écriture dans le dossier de destination.

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 :


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.

Quitter la version mobile