Ошибка удаления команды rsync «Обнаружена ошибка ввода-вывода - пропуск удаления файла»


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, даже если есть какая-то ошибка разрешения? Я не хочу использовать принудительное удаление, поскольку в некоторых ситуациях это будет опасно.


1
Pssst снова ... Вы действительно должны.
— Армель Ларсье

Ответы:


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

19

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

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

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


2

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


на самом деле мой исходный каталог довольно большой (10-12 ГБ). Поэтому каждый раз поиск файлов (не имеющих разрешения на чтение) не будет эффективным способом. Что вы говорите?
— XemX

Запустите его один раз, чтобы создать список исключений, и не запускайте его снова, пока не будет добавлена ​​целая куча новых нечитаемых файлов. rsync выполняет тот же обход дерева, так что все не должно быть так плохо.
— Кайл Джонс

Да. Но это то, на что похож мой сценарий. Ежедневный исходный каталог может представлять такие файлы. и мне нужно сделать резервную копию новых файлов на резервную машину.
— XemX

Есть ли рабочее решение для этого? Я также использую rsync для резервного копирования из действующей системы, и когда на считывающем компьютере возникает ошибка ввода-вывода, файлы удаляются на целевом компьютере, что НЕ ДОЛЖНО БЫТЬ!
— bzero
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.