Copier et sauvegarder des fichiers et des dossiers à l'aide de l'utilitaire Rsync
Rsync est un outil rapide et polyvalent pour copier des fichiers et des dossiers. L'utilitaire peut copier des données localement et vers d'autres hôtes, y compris le Cloud Storage d'Introserv. Les options de l'utilitaire permettent de contrôler de nombreux aspects de la copie et de la mise en miroir des données. L'une des principales fonctionnalités est la possibilité de compresser les données lors de l'envoi, ce qui permet d'accélérer le processus de copie entre les serveurs. Un autre avantage est l'exclusion des fichiers identiques lors de la copie. Par conséquent, seuls les fichiers différents seront copiés ou transférés, ce qui permettra sans aucun doute de gagner du temps lors de la synchronisation de grands répertoires.
Options de l'utilitaire
Examinons des exemples d'utilisation de Rsync pour copier des fichiers et des répertoires vers le Cloud Storage distant d'Introserv en utilisant le protocole SSH. Important ! Des commandes similaires, en spécifiant uniquement le serveur cible, vous permettront de copier des répertoires et des fichiers vers n'importe quel serveur distant via SSH.
Examinons quelques-unes des principales options de l'utilitaire qui seront utilisées le plus souvent. Une liste plus détaillée des options disponibles se trouve dans la documentation man (commande man rsync) :
-v – afficher des informations détaillées sur le processus
-c – vérifier les sommes de contrôle des fichiers
-q – informations minimales
-a – mode archivage
-R – chemins relatifs
-y – ne pas écraser les fichiers plus récents
-b – créer une copie de sauvegarde
-l – copier les liens symboliques
-L – copier le contenu des liens
-H – copier les liens physiques
-g – conserver le groupe
-p – conserver les permissions des fichiers
-t – conserver l'heure de modification
-x – travailler uniquement dans ce système de fichiers
-e – utiliser un autre protocole de transport (par exemple, ssh)
-z – compresser les fichiers avant le transfert
--delete – supprimer les fichiers qui ne sont pas dans la source
--exclude – exclure des fichiers
--recursive – énumérer les répertoires de manière récursive
--no-recursive – désactiver la récursivité
--progress – afficher la progression du transfert de fichiers
--stat – afficher les statistiques de transfert
--max-size – taille maximale du fichier pour le transfert
--bwlimit – limite de vitesse pour les transferts de fichiers
Brève explication de la syntaxe
rsync -az --progress /home/user/test.file boxxxx@boxxxxx.introserv.cloud:/remote_folder/
-az --progress – options indiquant qu'il faut archiver le fichier transféré, le compresser avant le transfert et afficher la progression de la copie à l'écran
/home/user/test.file – le chemin vers le fichier et le fichier lui-même qui doit être transféré
boxxxx@boxxxxx.introserv.cloud: – la ressource de destination (dans notre exemple, c'est le stockage cloud, mais cela peut aussi être un serveur distant). boxxxx est le nom d'utilisateur, après le signe @ se trouve le nom de la ressource ou l'adresse IP du serveur distant
/remote_folder/ – un dossier sur la ressource distante. Dans notre exemple – dans Introserv Cloud Storage.
Copier un seul fichier vers un dossier sur le stockage distant
rsync -az --progress /home/user/Desktop/test.file boxxxxx@boxxxxx.introserv.cloud:/remote_folder/
Un mot de passe vous sera demandé pour la connexion au stockage. Entrez le mot de passe et continuez – vous verrez la progression et la vitesse de transfert du fichier.
Copier un dossier vers un dossier sur le stockage distant
Faites attention aux barres obliques dans les lignes du dossier source et du dossier de destination. L'absence de barre oblique dans le dossier source indique que nous voulons transférer récursivement le dossier local Desktop avec tout son contenu vers le dossier remote_folder.
rsync -azr --progress /home/user/Desktop boxxxx@boxxxx.introserv.cloud:/remote_folder/
Vous verrez le répertoire et tous les fichiers qu'il contient pendant le transfert.
Copier le contenu d'un dossier local vers un dossier sur le stockage distant
Faites attention à la barre oblique à la fin du dossier source. Sa présence indique que l'utilitaire doit copier le contenu du dossier local vers un dossier sur le stockage distant.
rsync -avzr --progress /home/user/Desktop/ boxxxx@boxxxx.introserv.cloud:/remote_folder/
Vous verrez la progression et la vitesse de copie.
Copier un dossier du stockage distant vers un dossier sur le serveur local
En utilisant Rsync, vous pouvez initier la copie d'un dossier depuis le stockage distant. La commande ressemble à ceci :
rsync -zra --progress boxxxxx@boxxxxx.introserv.cloud:/remote_folder /home/user/Desktop/
Vous verrez la progression et la vitesse de copie du dossier distant vers un dossier sur le serveur local.
Copier le contenu d'un dossier du stockage distant vers un dossier sur le serveur local
Ici aussi, il convient de prêter attention à la barre oblique à la fin du chemin du dossier source. Sa présence indique que seul le contenu du dossier doit être copié.
rsync -zra --progress boxxxxx@boxxxxx.introserv.cloud:/remote_folder/ /home/user/Desktop/
Copier le contenu d'un dossier en excluant et/ou incluant des fichiers
L'utilitaire vous permet de spécifier explicitement quels fichiers transférer et lesquels doivent être exclus. Pour cela, on utilise les options --include et --exclude.
rsync -azr --progress --include 'test.file' --exclude 'test.file2' /home/user/Desktop/ boxxxx@boxxxx.introserv.cloud:/remote_folder/
Vous verrez qu'un seul fichier a été transféré, spécifié par l'option --include. Notez que les options include et exclude peuvent être utilisées séparément.
Copier uniquement les fichiers différents de ceux du dossier de destination
Pour annuler la copie des fichiers identiques, vous devez utiliser l'option -c pour vérifier les sommes de contrôle des fichiers. Cela permettra d'exclure du processus de copie les fichiers qui se trouvent déjà dans le dossier de destination.
rsync -azrc --progress /home/user/Desktop/ boxxxx@boxxxx.introserv.cloud:/remote_folder/
Vous verrez que seuls les fichiers différents ont été copiés vers le dossier distant, à l'exception des fichiers déjà présents sur le stockage distant.
Utilisation de Rsync via SSH avec un port SSH non standard
Pour transférer des fichiers depuis/vers un serveur avec un port SSH modifié, utilisez l'option -e 'ssh -p numéro_port'.
La commande pour copier un fichier vers un serveur sur lequel le port SSH a été changé en 44 ressemblera à ceci :
rsync -azrc --progress -e 'ssh -p44' /home/user/Desktop/ user@server_ip:/remote_folder/