rsync est une application Linux couramment utilisée pour la synchronisation de fichiers.
Il peut synchroniser des fichiers entre un ordinateur local et un ordinateur distant, ou entre deux répertoires locaux (mais ne prend pas en charge la synchronisation entre deux ordinateurs distants). Il peut également être utilisé comme un outil de transfert de fichiers amélioré, remplaçant des commandes telles que cp et mv
Installer
# Debian
$ sudo apt-get install rsync
# Red Hat
$ sudo yum install rsync
# Arch Linux
$ sudo pacman -S rsync
paramètres de la commande rsync
-v, --verbose : mode verbeux, affiche plus d'informations.
-q, --quiet : mode silencieux, réduit les informations de sortie.
-a, --archive : mode archive, équivalent à -rlptgoD , cela préservera tous les attributs du fichier, tels que les autorisations, le propriétaire, l'horodatage, etc.
-D : permet le transfert de fichiers de périphérique, de fichiers spéciaux et de fichiers FIFO. Ici, la signification de l'option -D est de permettre à rsync de transférer des fichiers de périphérique, des fichiers spéciaux et des fichiers FIFO. Le fichier de périphérique fait référence au nœud de périphérique dans le système Linux, par exemple, /dev/sda signifie le périphérique de disque dur, /dev/tty signifie le périphérique terminal, /dev/null signifie le périphérique vide, etc. Les fichiers spéciaux sont des fichiers autres que les fichiers ordinaires, tels que les tubes nommés (FIFO) et les sockets (sockets). L'option -D peut garantir que ces fichiers spéciaux sont correctement traités pendant le processus de transfert et ne seront pas traités par erreur comme des fichiers ordinaires.
-r, --recursive : copie récursivement tous les fichiers et sous-répertoires sous le répertoire et ses sous-répertoires.
-z, --compress : compresse les données pendant la transmission, ce qui réduira le volume de données et augmentera la vitesse de transmission.
-h, --human-readable : produit des informations lisibles par l'homme.
--delete : supprime les fichiers du répertoire cible qui ne se trouvent pas dans le répertoire source.
–progress : affiche les informations de progression.
-n, --dry-run : Ne copiez aucun fichier, simulez uniquement le processus de fonctionnement à des fins de test et de vérification.
-e, --rsh=COMMANDE : spécifie le shell distant à utiliser, qui peut être utilisé pour spécifier les paramètres ssh.
-b, --backup : mode de sauvegarde, sauvegarde les fichiers qui existent déjà dans la cible et qui présentent des différences.
–backup-dir=DIR : utilisé avec l'option -b pour spécifier le répertoire du fichier de sauvegarde.
-u, --update : mode de mise à jour, synchronise uniquement les fichiers source qui sont plus récents (modifiés plus récemment) que les fichiers cible.
-l, --links : conserve les liens symboliques.
-p, --perms : conserve les autorisations de fichiers.
-o, --owner : conserve le propriétaire du fichier (nécessite des privilèges de superutilisateur).
-g, --group : conserve le groupe auquel appartient le fichier.
-t, --times : conserver les horodatages des fichiers.
-S, --sparse : traitement spécial pour les fichiers fragmentés afin d'économiser de l'espace.
--existing : ne met à jour que les fichiers existants dans la cible, ne crée pas de nouveaux fichiers.
--ignore-existing : ignore les fichiers qui existent déjà dans la destination et ne copie que les nouveaux fichiers.
-n, --dry-run : exécution factice sans aucune modification, généralement utilisée pour les tests.
-W, --whole-file : désactiver la fonction de transfert incrémentiel de rsync, toujours transférer le fichier entier
cas d'utilisation
1. Synchronisez le répertoire local avec le serveur distant :
rsync -avz ~/local_dir username@remote_host:/remote_dir/
2. Copiez le fichier du serveur distant vers le répertoire local :
rsync -avz username@remote_host:/remote_file ~/local_dir/
3. Synchronisez les fichiers entre deux répertoires sur la même machine :
rsync -avz /source_dir/ /destination_dir/
4. Copiez tous les fichiers du répertoire courant vers l'adresse distante, à l'exception du fichier yolo.tar
rsync -av --exclude='yolo.tar' . username@remote_host:/path/to/destination/
Parmi eux, l'option -a signifie copier le fichier en mode archive, en conservant des informations telles que les attributs et les autorisations du fichier ; l'option -v signifie afficher des informations détaillées ; l'option –exclude='yolo.tar' signifie exclure le fichier nommé yolo.tar; . Indique le répertoire actuel, username indique le nom d'utilisateur de l'hôte distant, remote_host indique l'adresse IP ou le nom d'hôte de l'hôte distant et /path/to/destination/ indique le chemin cible
5. Utilisez le port 3022 pour copier tous les fichiers du répertoire courant vers l'adresse distante, à l'exception du fichier yolo.tar,
rsync -avz -e 'ssh -p 3022' --exclude='yolo.tar' . root@remote_host:/path/to/destination/
Dans cette commande, l'option -e 'ssh -p 3022' indique à rsync d'utiliser ssh comme shell distant et de spécifier le port avec le paramètre -p 3022.