Aperçu
`rsync --delete` copie le contenu du répertoire source vers le répertoire de destination, tout en supprimant les fichiers ou répertoires qui existent uniquement dans le répertoire de destination, synchronisant ainsi parfaitement les deux emplacements. Il est couramment utilisé pour la synchronisation de sauvegardes, le déploiement de serveurs web, la synchronisation d'environnements de développement, etc.
Caractéristiques principales
- Synchronisation parfaite des répertoires source et destination
- Suppression des fichiers/répertoires présents uniquement dans la destination
- Synchronisation efficace grâce au transfert incrémentiel
- Support de la synchronisation à distance via le réseau
Options principales
Voici les options couramment utilisées avec `rsync --delete`. L'option `--dry-run` doit impérativement être utilisée en premier pour éviter des erreurs critiques.
Contrôle de la synchronisation
Commande générée :
Essayez de combiner les commandes.
Description:
`rsync-delete` Exécute la commande.
Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.
Exemples d'utilisation
`rsync --delete` est une fonctionnalité puissante, il est donc crucial de toujours vérifier le résultat avec l'option `--dry-run` au préalable.
Aperçu des suppressions (obligatoire)
rsync -avn --delete /path/to/source/ /path/to/destination/
Synchronise le répertoire source (`/path/to/source`) et le répertoire de destination (`/path/to/destination`) et vérifie quels fichiers seront supprimés. Aucune modification réelle n'est effectuée.
Synchronisation et suppression réelles
rsync -av --delete /path/to/source/ /path/to/destination/
Après avoir vérifié la sécurité avec la simulation, synchronise réellement la source et la destination et supprime les fichiers présents uniquement dans la destination. `-a` signifie mode archive, `-v` signifie sortie détaillée.
Synchronisation et suppression en excluant certains fichiers/répertoires
rsync -av --delete --exclude='logs/' --exclude='*.tmp' /path/to/source/ /path/to/destination/
Supprime les fichiers de la destination qui n'existent pas dans la source, tout en excluant certains fichiers ou répertoires (par exemple, le répertoire `logs/` et les fichiers `*.tmp`) de la suppression et de la synchronisation.
Synchronisation et suppression avec un serveur distant
rsync -av --delete /path/to/local/source/ user@remote_host:/path/to/remote/destination/
Synchronise le contenu d'un répertoire local avec un répertoire sur un serveur distant et supprime les fichiers présents uniquement sur le serveur distant. La transmission est sécurisée via SSH.
Conseils et précautions
`rsync --delete` peut être une commande très puissante et destructrice, il est donc essentiel de connaître les points suivants avant de l'utiliser.
Précautions les plus importantes
- **Utilisez toujours `--dry-run` (-n) en premier** : Vérifiez impérativement quels fichiers seront supprimés avant l'exécution réelle.
- **Vérifiez les chemins source et destination** : Une mauvaise spécification des chemins peut entraîner une perte de données involontaire.
- **Sauvegarde obligatoire** : Effectuez toujours une sauvegarde préalable lorsque vous manipulez des données importantes.
- **Importance du slash (/)** : Un slash à la fin du chemin source indique le *contenu* du répertoire, tandis que son absence indique le répertoire *lui-même*. Cette distinction est importante lors de l'utilisation avec `--delete`.
Différence du slash (/) dans les chemins
La présence ou l'absence d'un slash à la fin du chemin source affecte le comportement.
- `rsync -av --delete source/ dest/`: Copie le *contenu* du répertoire `source` vers `dest` et supprime les fichiers présents uniquement dans `dest`. Le répertoire `source` lui-même n'est pas créé dans `dest`.
- `rsync -av --delete source dest/`: Copie le répertoire `source` *lui-même* dans le répertoire `dest`. Autrement dit, le chemin `dest/source/` est créé. Si `dest` contient déjà un fichier portant le même nom que le répertoire `source`, il pourrait être supprimé.