Commande Linux rsync

Linux 命令大全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

  1. Synchronisation incrémentielle: Ne transfère que les parties modifiées des fichiers, ce qui économise la bande passante et le temps
  2. Préserver les attributs: Peut préserver des métadonnées telles que les permissions de fichiers et les horodatages
  3. Transfert compressé: Prend en charge la compression des données pendant le transfert, ce qui réduit la charge réseau
  4. Exclusion flexible: Peut exclure des fichiers ou répertoires spécifiques
  5. 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

# Synchroniser /home/user/docs vers /backup/docs, en préservant tous les attributs
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

# Synchroniser le répertoire local vers un serveur distant avec compression
rsync -avz /data/backups/ user@example.com:/remote/backups/

Exemple 3 : Synchronisation avec options d'exclusion

Exemple

# Synchroniser mais exclure les fichiers .tmp et le répertoire log
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

rsync -av --delete /source/ /destination/

Utilisation avancée de rsync

1. Utilisation d'un port SSH personnalisé

Exemple

rsync -avz -e 'ssh -p 2222' /chemin/local/ utilisateur@hôte:/chemin/distant/

2. Limite de bande passante (limitée à 500KB/s)

Exemple

rsync -avz --bwlimit=500 /source/ /destination/

3. Transfert partiel (transférer uniquement les fichiers de plus de 100KB)

Exemple

rsync -av --min-size=100K /source/ /destination/

4. Script de sauvegarde planifié

Exemple

#!/bin/bash
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

rsync -av --partial /source/ /destination/

Q3 : Comment voir ce que rsync va faire sans l'exécuter réellement ?

Utiliser-noption (dry-run) :

Exemple

rsync -avn /source/ /destination/

Q4 : Comment améliorer la vitesse de transfert de rsync ?

  1. Utiliser-zoption pour activer la compression
  2. Utiliser--compress-level=Najuster le niveau de compression (1-9)
  3. Désactiver le calcul de la somme de contrôle (réseaux de confiance uniquement) :--no-checksum

Recommandations de bonnes pratiques

  1. Testez d'abord: Utilisez-noption pour effectuer d'abord un essai à blanc
  2. Journalisation: Ajoutez--log-file=rsync.logpour enregistrer les opérations
  3. Gestion des permissions: Envisagez d'utiliser--chmodpour unifier les permissions des fichiers
  4. Tâches planifiées: Combinez avec crontab pour des sauvegardes automatiques
  5. 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.

Linux 命令大全Liste complète des commandes Linux

Autres extensions