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?

1 ответ1

45

Фильтр "защита" должен выполнять то, что вы хотите:

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

Просто укажите следующий фильтр перед соответствующими исключениями:

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .