Мы используем следующий 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
Эти параметры верны? Это рабочие хосты для нас, и я хочу убедиться, прежде чем использовать эти параметры. Также любые советы экспертов.
Я бы не стал использовать --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.
И, конечно, соответствующие разделы для каждого метода.