Comment exclure le répertoire RSync?

Comment exclure le répertoire RSync?
RSYNC (signifie Remote Sync) est un utilitaire de ligne de commande très puissant pour la synchronisation des fichiers et répertoires locaux et distants. Il est préinstallé sur la plupart des distributions Linux. C'est l'un des meilleurs services publics pour la sauvegarde et la conservation des fichiers et des répertoires sur plusieurs emplacements synchronisés. La meilleure partie de RSYNC est qu'elle minimise la quantité de données copiées dans l'emplacement distant en copie uniquement les données qui ont été modifiées. Il y a une autre grande caractéristique de RSYNC dont nous allons discuter aujourd'hui; Il exclut les fichiers ou les répertoires de la synchronisation. Ceci est extrêmement utile pendant les sauvegardes lorsque vous ne souhaitez pas copier un ou plusieurs fichiers ou répertoires.

Nous vous montrerons comment vous pouvez exclure un fichier ou un répertoire dans RSYNC en utilisant différents exemples. Les exemples présentés ici ont été testés sur Ubuntu 20.04 LTS, cependant, ceux-ci sont également valables pour les autres distributions Linux ayant installé RSYNC.

Exclure un fichier spécifique

Lors de la synchronisation d'un répertoire, vous souhaiterez peut-être exclure un fichier spécifique situé à l'intérieur. Vous pouvez le faire en utilisant l'option -exclure suivie du nom de fichier enfermé dans des virgules.

La syntaxe de la commande sera:

$ rsync -a --exclude 'file_name' source_directory / destination_directory /

Ici, un L'option est utilisée pour la synchronisation récursive.

Par exemple, pour exclure un fichier nommé goûter.SMS de la source lors de la synchronisation src_dir et dest_dir, La commande serait:

$ RSYNC -A - Exclude 'échantillon.txt 'src_dir / dest_dir /

Exclure un répertoire spécifique

Pour exclure un répertoire spécifique (y compris ses sous-répertoires) à partir de la source lors de la synchronisation de la source et des répertoires de destination, utilisez la syntaxe suivante:

$ rsync -a --exclude 'Directory_name' src_dir / dest_dir /

Par exemple, pour exclure un répertoire nommé échantillon Lors de la synchronisation du src_dir et dest_dir, La commande serait:

$ RSYNC -A --Exclude 'Sampledir' SRC_DIR / DEST_DIR /

Si vous souhaitez exclure le contenu du répertoire mais pas le répertoire lui-même, utilisez le nom du répertoire suivi de / *:

$ RSYNC -A --Exclude 'Sampledir / *' SRC_DIR / DEST_DIR /

La commande ci-dessus ne copiera le répertoire que sur la destination mais pas son contenu.

Exclure plusieurs fichiers ou répertoires

Pour exclure plusieurs fichiers ou répertoires pendant le processus de synchronisation, spécifiez chacun d'eux comme suit:

$ rsync -a --exclude 'file_name' --exclude 'Directory1 --exclude' Directory2 'src_dir / dest_dir /

Au lieu de spécifier -exclure Option séparément pour chaque fichier ou répertoire, vous pouvez utiliser un seul -exclure Option en spécifiant tous les fichiers ou répertoires en crochets bouclés.

$ rsync -a --exclude = 'file_name', 'Directory1', 'Directory2' src_dir / dest_dir /

Une autre option pour exclure plusieurs fichiers ou répertoires est de les répertorier dans un fichier, puis de passer le nom de fichier au -exclure de option:

$ RSYNC -A - Exclude-from 'List' SRC_DIR / DEST_DIR /

Ici, la «liste» contient le nom du fichier et des répertoires que nous voulons exclure. Cette commande synchronise SRC_DIR avec le dest_dir tout en excluant les fichiers et répertoires mentionnés dans le fichier «Liste».

Exclure des fichiers ou des répertoires qui correspondent à un modèle

Avec RSYNC, vous pouvez également exclure des fichiers ou des répertoires qui correspondent à un modèle spécifique. Par exemple, lors de la synchronisation d'un répertoire, vous souhaiterez peut-être exclure tous les fichiers se terminant par un .SMS extension. La commande, dans ce cas, serait:

$ RSync -a --exclude '*.txt 'src_dir / dest_dir /

Exclure un fichier par taille

Avec RSYNC, vous pouvez exclure des fichiers en fonction de leur taille minimale ou maximale. Ici, nous n'utiliserons pas l'option - Exclure l'option, mais les options -max-size = ou -min-size == basées sur la taille maximale et minimale, respectivement.

Voici la liste de notre src_dir qui affiche les noms de fichiers avec leurs tailles dans MB.

Disons que nous voulons synchroniser tous les fichiers avec le dest_dir, sauf ceux qui ont une taille supérieure à 100 Mo. Dans ce cas, la commande serait:

$ rsync -av --max-size = 100m src_dir / dest_dir /

De même, pour exclure les fichiers plus petits qu'une taille spécifique, disons 50 Mo, la commande serait:

$ RSYNC -AV --min-size = 50m src_dir / dest_dir /

Conclusion

C'est tout ce qu'il y a! Dans cet article, nous avons discuté de différents exemples pour exclure un fichier ou un répertoire dans RSYNC. Nous avons montré comment exclure un seul fichier ou répertoire, plusieurs fichiers et répertoires, des fichiers qui correspondent à un modèle spécifique et les fichiers en fonction de leurs tailles minimales / maximales.