web-dev-qa-db-fra.com

Comment exclure RSYNC exclut de Supprimer?

J'utilise RSYNC pour synchroniser des fichiers sur plusieurs machines, en utilisant les éléments suivants:

rsync -az -e "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" \
  --delete --delete-excluded --force --exclude=.git  --exclude=.bundle \
  --exclude=tmp --exclude=log/* --exclude=*.log --exclude=*.pid \
  user@Host:/path/to/src/ /var/build/dest

Je souhaite exclure tous les fichiers journaux d'être transférés de la source à la destination et supprimez tous les existants sur la destination. Donc j'utilise --exclude=*.log avec --delete-excluded qui fonctionne bien.

mais Je veux garder un certain fichier journal intact sur la destination. Je veux un --exclude-from-delete option.

Est-ce possible avec rsync?

31
Rob

Le filtre "Protect" devrait accomplir exactement ce que vous voulez:

          protect, P specifies a pattern for protecting files from deletion.

Spécifiez simplement le filtre suivant avant que les exclusions appropriées:

--filter='P my-specific-logfile.log'

(Notez l'espace après la lettre P.)

47
koniiiik