Comment exclure des fichiers de Rsync
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 lorsque vous utilisez 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 modifier la liste et modifier les éléments si nécessaire. Voici la syntaxe:
rsync --exclude-from = / path / to / exclusion-file / chemin / vers / source / chemin / vers / 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 tente de faire correspondre les exclusions, il n'utilise 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 d'origine est basée sur le dossier / data / web /. Il suffit de vérifier "cache /" contre 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, pour vous 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 commenceriez le motif avec l'étoile pour vous assurer que cela correspond toujours, et ajoutez ceci:
*.SMS
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 = relatif / chemin / vers / exclusion / source / dest
Le même chemin relatif devrait s'appliquer ici comme ci-dessus.