Comment exclure des fichiers de Rsync

Table des matières:

Comment exclure des fichiers de Rsync
Comment exclure des fichiers de Rsync

Vidéo: Comment exclure des fichiers de Rsync

Vidéo: Comment exclure des fichiers de Rsync
Vidéo: Briques du Web S01E06 - Sur les traces de Tim Berners-Lee - YouTube 2024, Novembre
Anonim
Image
Image

Rsync est l’un des utilitaires les plus utiles pour un administrateur de serveur, mais il se synchronise.tout par défaut, ce qui peut être gênant si votre application crée beaucoup de fichiers temporaires. Voici comment exclure des fichiers lors de l’utilisation de rsync.

Exclure d'une liste dans un fichier

C'est la méthode idéale pour exclure les fichiers et les dossiers, car vous pouvez toujours éditer la liste et ajuster les choses si nécessaire. Voici la syntaxe:

rsync - -exclude-from=/path/to/exclusion-file /path/to/source /path/to/dest

Le problème avec rsync est que vous devez utiliser un chemin relatif lorsque vous essayez d’exclure des éléments, car lorsqu’il essaie de faire correspondre les exclusions, il n’utilisera pas la première partie du chemin pour la correspondance… c’est bizarre.

Supposons, par exemple, que vous essayez de sauvegarder / data / web / et que vous l'envoyiez sur un autre serveur. Vous devez donc utiliser une commande telle que rsync -a / data / web / user @ server: / backups / data / web / pour la créer. arrive… mais vous voudriez vraiment ne pas synchroniser le dossier / data / web / cache /. Lorsque rsync vérifie votre liste d’exclusion pour chaque élément synchronisé, il ne vérifie pas / data / web / cache / car votre commande rsync originale est basée sur le dossier / data / web /. Il suffit de vérifier "cache /" par rapport à la liste. Donc, vous aurez besoin de mettre "cache" dans la liste, pas le chemin complet. Exemple:

rsync -a --exclude-from=/data/exclusions /data/web/ /backups/

Maintenant, pour exclure / data / web / cache et / data / web / temp de rsync en utilisant cette commande, nous supprimerions la partie / data / web / du chemin et le fichier / data / exclusions contiendrait simplement ceci:

cache* temp*

Vous remarquerez que j’ai ajouté le signe * dans le chemin, afin de s’assurer qu’il correspond à tout ce qui commence par «cache» au début. Si vous le souhaitez, vous pouvez utiliser ce modèle en étoile pour des raisons plus utiles. Par exemple, vous souhaitez exclure tous les fichiers.txt de la synchronisation. Vous commencerez le motif avec l’étoile pour vous assurer que cela correspond toujours et ajoutez ceci:

*.txt

Cela garantirait que ces types de fichiers sont ignorés lors d'une synchronisation. C’est assez simple au-delà de ça.

Exclure un seul article

Cette technique est beaucoup moins utile, mais vous pouvez l’utiliser à la volée si vous en avez besoin. Si vous configurez un script pour utiliser rsync, ce que vous êtes généralement, prenez une minute supplémentaire pour exclure une liste de fichiers afin de faciliter la maintenance future. La syntaxe est très similaire:

rsync --exclude=relative/path/to/exclusion /source /dest

Le même chemin relatif devrait s'appliquer ici comme ci-dessus.

Conseillé: