16

Я использую команду rsync для резервного копирования файлов с одного из моих серверов Ubuntu на другой компьютер с Ubuntu. Сервер резервного копирования запускает скрипт, использующий команду rysnc. Вот команда, которую я использую

rsync -rltvh --partial --stats --exclude = .beagle/ --exclude =. * --delete-after root @ live_server:/ home/ / home/ live_server_backup / home >> /tmp/logfile.log 2> & 1

Live_Server ssh-в состоянии без пароля. Так что это работает. Теперь проблема с

опция -delete-after

Ведь файл синхронизирован.В конце я вижу процедуру удаления skipped.logfile ошибка как

Обнаружена ошибка ввода-вывода - пропущено удаление файла

При попытке найти журнал произошла ошибка при синхронизации файла

rsync: не удалось открыть send_files "/home/xyz/Desktop/PPT_session_1_context.pdf": разрешение отклонено (13)

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

Есть ли способ сделать --delete-after work, даже если есть какая-то ошибка разрешения? Я не хочу использовать принудительное удаление, поскольку в некоторых ситуациях это будет опасно.

3 ответа3

19

Со страницы руководства rsync:

--ignore-errors         delete even if there are I/O errors

Это решит вашу проблему.

13

Дополнительное примечание об этой проблеме:

vanished file не должен вызывать IO error encountered -- skipping file deletion , но это часто происходит при создании резервной копии работающей системы.

Это покрыто ошибкой rsync # 7809 (https://bugzilla.samba.org/show_bug.cgi?id=7809) и должно быть решено в следующем выпуске 3.1.0.

А пока пользуюсь:

--ignore-errors         delete even if there are I/O errors
2

Вы должны использовать исключающий файл, чтобы rsync игнорировал файлы, которые он не может прочитать. Список может быть сгенерирован с помощью find . -exec test -r '{}' в исходном каталоге и затем массируется в формат исключаемого файла, который хочет rsync .

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