Як виключити виключення rsync із видалення?


31

Я використовую rsync для синхронізації файлів на декількох машинах, використовуючи наступне:

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

Я хочу виключити всі файли журналу з передачі з джерела до пункту призначення та видалити всі існуючі в адресата. Тому я використовую, --exclude=*.logз --delete-excludedякою чудово працює.

Але я хочу зберегти певний файл журналу недоторканим у пункті призначення. Я хочу --exclude-from-deleteваріант.

Чи можливо це за допомогою rsync?


Відповіді:


47

Фільтр "захист" повинен виконувати саме те, що ви хочете:

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

Просто вкажіть наступний фільтр, перш ніж відповідний виключає:

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

(Помітьте пробіл після літери П.)


2
Це насправді працює.
Монітор риб
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.