Commande Linux rsync
Liste complète des commandes Linux
Qu'est-ce que la commande rsync
rsync (Remote Sync) est un puissant outil de synchronisation de fichiers dans les systèmes Linux. Il peut synchroniser efficacement des fichiers et des répertoires entre des systèmes locaux ou distants. rsync est connu pour son algorithme de « transfert incrémentiel », qui ne transfère que les différences entre les fichiers source et de destination, ce qui améliore grandement l'efficacité du transfert de fichiers.
Fonctionnalités principales de rsync
- Synchronisation incrémentielle: Ne transfère que les parties modifiées des fichiers, ce qui économise la bande passante et le temps
- Préserver les attributs: Peut préserver des métadonnées telles que les permissions de fichiers et les horodatages
- Transfert compressé: Prend en charge la compression des données pendant le transfert, ce qui réduit la charge réseau
- Exclusion flexible: Peut exclure des fichiers ou répertoires spécifiques
- Prise en charge distante: Synchroniser en toute sécurité les fichiers de serveur distant via SSH
Syntaxe de base de rsync
rsync [选项] 源文件 目标文件
Formes de commandes courantes
Synchronisation locale:
rsync -av /path/to/source/ /path/to/destination/
Synchroniser du local vers le distant:
rsync -avz /local/path/ username@remote_host:/remote/path/
Synchroniser du distant vers le local:
rsync -avz username@remote_host:/remote/path/ /local/path/
Explication détaillée des options rsync courantes
| Option | Nom complet | Description |
|---|---|---|
| -a | --archive | Mode archive, préserve tous les attributs de fichier (équivalent à -rlptgoD) |
| -v | --verbose | Afficher les informations détaillées sur le transfert |
| -z | --compress | Compresser les données pendant le transfert |
| -r | --recursive | Copier les répertoires de manière récursive |
| -l | --links | Préserver les liens symboliques |
| -p | --perms | Préserver les permissions de fichier |
| -t | --times | Préserver l'heure de modification des fichiers |
| -g | --group | Préserver le groupe de fichiers |
| -o | --owner | Préserver le propriétaire du fichier |
| -D | --devices | Préserver les fichiers de périphérique (superutilisateur uniquement) |
| -h | --human-readable | Afficher les nombres dans un format lisible par l'humain |
| --progress | Afficher la progression du transfert | |
| --delete | Supprimer les fichiers de la destination qui ne sont pas dans la source | |
| --exclude=PATTERN | Exclure les fichiers correspondant à PATTERN | |
| --include=PATTERN | Inclure les fichiers correspondant à PATTERN |
Exemples d'application pratique de rsync
Exemple 1 : Synchronisation de répertoire local
Exemple
rsync -av /home/user/docs/ /backup/docs/
Remarque: La barre oblique après le répertoire source/est très important :
- Avec barre oblique : synchroniser le contenu du répertoire
- Sans barre oblique : synchroniser le répertoire lui-même
Exemple 2 : Sauvegarde sur un serveur distant
Exemple
rsync -avz /data/backups/ user@example.com:/remote/backups/
Exemple 3 : Synchronisation avec options d'exclusion
Exemple
rsync -av --exclude='*.tmp' --exclude='log/' /source/ /destination/
Exemple 4 : Maintenir les deux côtés parfaitement cohérents (supprimer les fichiers en trop sur la cible)
Exemple
Utilisation avancée de rsync
1. Utilisation d'un port SSH personnalisé
Exemple
2. Limite de bande passante (limitée à 500KB/s)
Exemple
3. Transfert partiel (transférer uniquement les fichiers de plus de 100KB)
Exemple
4. Script de sauvegarde planifié
Exemple
rsync -avz --delete /sauvegarde/de données/ importantes@serveur:/sauvegardes/données/
echo "Sauvegarde terminée à $(date)" >> /var/log/backup.log
FAQ rsync
Q1 : Quelle est la différence entre rsync et scp ?
- rsync: synchronisation incrémentielle, ne transfère que les différences, adaptée aux sauvegardes régulières
- scp: transfert complet à chaque fois, adapté aux transferts de fichiers ponctuels
Q2 : Comment reprendre un transfert rsync interrompu ?
Utiliser--partialoption pour conserver les fichiers partiellement transférés :
Exemple
Q3 : Comment voir ce que rsync va faire sans l'exécuter réellement ?
Utiliser-noption (dry-run) :
Exemple
Q4 : Comment améliorer la vitesse de transfert de rsync ?
- Utiliser
-zoption pour activer la compression - Utiliser
--compress-level=Najuster le niveau de compression (1-9) - Désactiver le calcul de la somme de contrôle (réseaux de confiance uniquement) :
--no-checksum
Recommandations de bonnes pratiques
- Testez d'abord: Utilisez
-noption pour effectuer d'abord un essai à blanc - Journalisation: Ajoutez
--log-file=rsync.logpour enregistrer les opérations - Gestion des permissions: Envisagez d'utiliser
--chmodpour unifier les permissions des fichiers - Tâches planifiées: Combinez avec crontab pour des sauvegardes automatiques
- Transfert sécurisé: Effectuez toujours les transferts distants via SSH
Résumé
rsync est un outil essentiel pour les administrateurs système Linux et les développeurs. Le maîtriser vous permet de :
- Effectuer efficacement la synchronisation de fichiers locaux et distants
- Mettre en place des solutions de sauvegarde automatisées
- Optimiser le transfert de données réseau
- Maintenir la cohérence du système de fichiers
Grâce à cet article, vous devriez avoir maîtrisé l'utilisation de base et les techniques avancées de rsync. Il est recommandé de pratiquer davantage dans votre travail réel et d'explorer progressivement davantage les fonctionnalités puissantes de rsync.
Autres extensions