Как исключить 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'

(Обратите внимание на пробел после буквы P.)

koniiiik
источник
2
Это на самом деле работает.
Fish Monitor