Maison > Tutoriel système > Linux > Comment synchroniser les répertoires locaux et distants à l'aide de RSYNC dans Linux

Comment synchroniser les répertoires locaux et distants à l'aide de RSYNC dans Linux

William Shakespeare
Libérer: 2025-03-21 09:12:14
original
586 Les gens l'ont consulté

RSYNC: un outil puissant pour synchroniser les répertoires locaux et distants

RSYNC est un utilitaire robuste et polyvalent pour synchroniser les répertoires, transférant efficacement les portions de fichiers modifiées. Cela le rend idéal pour gérer de grands répertoires avec des fichiers fréquemment mis à jour, que ce soit entre deux machines ou sur un seul système. Sa flexibilité est améliorée par des fonctionnalités telles que l'intégration SSH, la compression des données, la préservation des attributs de fichiers (autorisations et horodatage) et la possibilité de supprimer les fichiers de la destination absente de la source.

Structure de commande RSYNC:

 rsync [Options] [Source] [Destination]
Copier après la connexion

Options clés RSYNC:

  • -a ( --archive ): préserve les métadonnées de fichier cruciales (liens symboliques, autorisations, horodatage).
  • -v ( --verbose ): fournit une sortie détaillée.
  • -r ( --recursive ): traite les répertoires récursivement.
  • --delete : supprime les fichiers de la destination qui ne sont pas dans la source. Essentiel à la véritable synchronisation.
  • -z ( --compress ): comprime les données pendant le transfert, enregistrer la bande passante.
  • -h ( --human-readable ): affiche des tailles de fichiers et d'autres données numériques dans un format convivial.
  • -P : combine --partial (reprise les transferts interrompus) et --progress (affiche la progression du transfert).

Scénarios de synchronisation et configuration:

RSYNC est utile pour diverses tâches: sauvegarder les données vers un serveur distant, partager des fichiers sur les machines, déployer du code en production et maintenir la cohérence entre les environnements de développement et de mise en scène.

Pour l'exemple de ce guide, nous utiliserons:

Système local: Debian 11 Desktop, répertoire local: ~/local/sync/

Système distant: Debian 12 Server, Utilisateur distant: ostechnix , IP distant: 192.168.1.12 , répertoire distant: ~/remote/sync/

Utilisation de base:

En supposant que rsync est installé et que les autorisations sont correctement définies, la commande suivante copie / synchronise le répertoire local à la télécommande:

 RSync -avzp ~ / local / sync / ostechnix@192.168.1.12: ~ / distant / sync /
Copier après la connexion

N'oubliez pas de remplacer les espaces réservés par vos chemins réels, votre adresse IP et votre nom d'utilisateur.

Comment synchroniser les répertoires locaux et distants à l'aide de RSYNC dans Linux

Comment synchroniser les répertoires locaux et distants à l'aide de RSYNC dans Linux

Vraie synchronisation avec --delete :

La commande ci-dessus reflète la source vers la destination. Pour garantir une synchronisation complète (contenu identique), utilisez --delete :

 RSync -avzp --Delete ~ / local / sync / ostechnix@192.168.1.12: ~ / distant / sync /
Copier après la connexion

Cela supprime les fichiers de la destination qui ne sont pas présents dans la source. Exercez la prudence avec --delete pour éviter une perte accidentelle de données.

Comment synchroniser les répertoires locaux et distants à l'aide de RSYNC dans Linux

Considérations importantes:

  • Les barres de traîne ( / ) après les chemins de répertoire sont cruciales. Les omettre peut conduire à une création de répertoire inattendue.
  • Vérifiez les autorisations sur les répertoires source et de destination.
  • L'authentification basée sur les clés SSH est recommandée pour la synchronisation automatisée, éliminant les invites de mot de passe.

Améliorations supplémentaires:

  • Authentification SSH basée sur les clés: générer une paire de clés SSH ( ssh-keygen ), copier la clé publique sur le serveur distant ( ssh-copy-id ) et utiliser des chemins de clé par défaut ou spécifier explicitement le chemin de la clé privée dans votre commande rsync .

  • Synchronisation en temps réel (inotify): combinez rsync avec inotifywait (à partir du package inotify-tools ) pour déclencher la synchronisation lors des modifications de fichiers. Un exemple de script est fourni dans le document d'origine.

  • Planification avec cron : Automatiser la synchronisation à l'aide cron pour fonctionner à des intervalles spécifiques (par exemple, quotidiennement, horaire). Des exemples d'entrées cron sont fournies dans le document d'origine.

  • Chemin de clé SSH explicite: Bien que généralement inutile avec les emplacements de clé par défaut, la spécification explicite du chemin de clé privé dans votre script offre plus de contrôle.

Conclusion:

RSYNC est un outil puissant pour une synchronisation de fichiers efficace. Comprendre ses options et utiliser les meilleures pratiques, telles que l'authentification basée sur les clés SSH et les tâches planifiées, assure une gestion fiable et sécurisée des données. Testez toujours soigneusement avant d'appliquer les commandes rsync aux environnements de production, en particulier lors de l'utilisation de l'option --delete .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal