Использование опции --delete с rsync

Мы используем следующий rsync команда в сценарии для копирования файлов из источника в место назначения.

rsync -av --exclude 'share/web/sessions/' --rsync-path "sudo rsync" /sdata/ 172.31.X.X:/sdata/ &>/home/fsync/rsyncjob/output

Теперь у нас есть сценарий очистки на исходном хосте, который удаляет некоторые файлы через определенное количество дней в соответствии с нашим требованием. Мы хотим, чтобы файлы после их удаления с исходного хоста, rsync также удаляли их с целевого хоста.

Насколько я понимаю, rsync предоставляет параметры - delete-before и - delete-after , чтобы удалить файлы с целевого хоста один раз. они были удалены с исходного хоста. Но я немного скептически отношусь к использованию этих опций, как сказано на странице руководства . Эта опция может быть опасна при неправильном использовании! Хорошая идея - сначала попробовать выполнить запуск с параметром --dry-run (-n), чтобы увидеть, какие файлы будут удалены.

Моя обновленная команда выглядит следующим образом

rsync -av --exclude 'share/web/sessions/' --delete-after --rsync-path "sudo rsync" /sdata/ 172.31.X.X:/sdata/ &>/home/fsync/rsyncjob/outpu

Эти параметры верны? Это рабочие хосты для нас, и я хочу убедиться, прежде чем использовать эти параметры. Также любые советы экспертов.

0
22.03.2016, 11:35
1 ответ

Я бы не стал использовать --delete-after, потому что это заставляет rsync повторно сканировать список файлов. Лучшим вариантом на сегодняшний день является использование --delete-during (или --del для краткости). Если вы хотите сохранить эффект "удаления после" из-за проблем с ошибками ввода-вывода, используйте --delete-delay.

См. man-страницу для справки:

Некоторые опции требуют, чтобы rsync знал полный список файлов, поэтому эти опции отключают режим инкрементной рекурсии. К ним относятся: --delete-before, --delete-after, --prune-empty-dirs и --delay-updates. В связи с этим, режим удаления по умолчанию, когда вы указываете --delete, теперь --delete-during, когда оба конца не ниже 3.0.0 (используйте --del или --delete-during, чтобы запросить этот улучшенный режим удаления в явном виде). Смотрите также опцию --delete-delay опция, которая является лучшим выбором, чем использование --delete-after.

И, конечно, соответствующие разделы для каждого метода.

1
28.01.2020, 02:48

Теги

Похожие вопросы