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]
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 /
N'oubliez pas de remplacer les espaces réservés par vos chemins réels, votre adresse IP et votre nom d'utilisateur.
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 /
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.
Considérations importantes:
/
) après les chemins de répertoire sont cruciales. Les omettre peut conduire à une création de répertoire inattendue.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!