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?
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.)