accueil > Gestion des fichiers et répertoires > rsync

rsync : Synchronisation et sauvegarde de fichiers (utilisation de l'option --include)

rsync est un utilitaire puissant pour synchroniser efficacement les fichiers et répertoires entre systèmes locaux et distants. En particulier, l'option `--include` permet de n'inclure dans la cible de synchronisation que les fichiers ou répertoires correspondant à des motifs spécifiques, ce qui le rend très utile dans des scénarios complexes de sauvegarde et de déploiement. Ce guide se concentre sur l'utilisation de base de rsync ainsi que sur l'application de l'option `--include`.

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.


Commandes de la même catégorie