Aperçu
rsync économise la bande passante réseau en ne transférant que les fichiers modifiés, et permet un contrôle précis des fichiers/répertoires à transférer via les options `--include` et `--exclude`. `--include` inclut des motifs spécifiques, et `--exclude` exclut des motifs spécifiques. L'ordre de ces deux options est important.
Caractéristiques principales
- Transfert incrémentiel : transfert efficace en ne transférant que les fichiers modifiés
- Synchronisation à distance : possibilité de synchroniser avec des serveurs distants via SSH, etc.
- Filtrage flexible : contrôle précis des cibles de transfert avec les options `--include` et `--exclude`
- Conservation des attributs : maintien de divers attributs tels que les permissions de fichiers, la propriété, les horodatages
Options principales
Parmi les diverses options de rsync, voici les options couramment utilisées avec l'option `--include`.
Options de filtrage
Options de comportement de base et d'efficacité
Commande générée :
Essayez de combiner les commandes.
Description:
`rsync` Exécute la commande.
Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.
Exemples d'utilisation
Exemples de divers scénarios de synchronisation utilisant l'option `--include` de rsync.
Synchroniser uniquement les fichiers avec une extension spécifique
rsync -av --include='*.txt' --exclude='*' src/ dest/
Synchronise uniquement les fichiers avec l'extension '.txt' du dossier 'src' du répertoire courant vers le dossier 'dest'. Tous les autres fichiers seront exclus.
Synchroniser uniquement un répertoire spécifique
rsync -av --include='data/***' --exclude='*' src/ dest/
Synchronise le répertoire 'data/' et tout son contenu du dossier 'src' vers le dossier 'dest'. Tous les autres fichiers/répertoires seront exclus.
Synchroniser en incluant/excluant plusieurs motifs
rsync -av --exclude='*.log' --include='report/***' --include='*.txt' --exclude='*' src/ dest/
Exclut les fichiers '.log' de 'src', et synchronise le répertoire 'report/' et les fichiers '.txt' vers 'dest'. Les autres fichiers seront exclus.
Tester les règles d'inclusion/exclusion avec une simulation
rsync -avn --include='*.txt' --exclude='*' src/ dest/
Vérifie comment les règles de filtrage sont appliquées sans synchronisation réelle. Cette commande affichera uniquement quels fichiers seront transférés.
Récupérer uniquement des fichiers spécifiques d'un serveur distant
rsync -av --include='*.conf' --exclude='*' user@remote_host:/remote/path/ ./local/path/
Récupère uniquement les fichiers '.conf' de '/remote/path/' sur le serveur distant vers './local/path/' localement.
Conseils et précautions
Conseils et précautions pour utiliser efficacement les options `--include` et `--exclude` de rsync.
Importance de l'ordre des règles de filtrage
Les options `--include` et `--exclude` sont traitées dans l'ordre où elles apparaissent sur la ligne de commande. La première règle correspondante a la priorité. Il est donc courant de placer les règles plus spécifiques en premier, et les règles plus générales ensuite.
- Exemple 1: `--include='specific_file' --exclude='*'` (inclure uniquement un fichier spécifique et exclure le reste)
- Exemple 2: `--exclude='*.tmp' --include='*'` (inclure tous les fichiers mais exclure les fichiers .tmp)
Correspondance de caractères génériques et de motifs
Divers caractères génériques peuvent être utilisés pour la correspondance de motifs.
- `*`: Toute chaîne de caractères (ne traverse pas les limites de répertoire)
- `?`: Un seul caractère
- `[chars]`: Un des caractères entre crochets
- `***`: Toute chaîne de caractères traversant les limites de répertoire (correspondance récursive)
Signification du slash (/)
Le comportement peut varier en fonction de la présence ou non d'un slash à la fin du motif.
- `dir/`: S'applique au répertoire 'dir' lui-même et à tout son contenu.
- `file_or_dir`: S'applique aux fichiers ou répertoires nommés 'file_or_dir'.
Utilisation de la simulation (`-n`)
Lors de l'utilisation de règles de filtrage complexes, il est toujours recommandé d'utiliser l'option `-n` ou `--dry-run` pour vérifier les résultats attendus avant la synchronisation réelle. Ceci est essentiel pour éviter la suppression ou l'inclusion involontaire de fichiers.