Я использую команду 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, даже если есть какая-то ошибка разрешения? Я не хочу использовать принудительное удаление, поскольку в некоторых ситуациях это будет опасно.
источник
Ответы:
Дополнительное примечание об этой проблеме:
vanished file
не должно вызывать условиеIO error encountered -- skipping file deletion
, но это часто происходит при создании резервной копии работающей системы.Это покрыто ошибкой rsync # 7809 ( https://bugzilla.samba.org/show_bug.cgi?id=7809 ) и должно быть решено в следующем выпуске 3.1.0.
А пока пользуюсь:
источник
Со страницы руководства rsync:
Это решит вашу проблему.
источник
Вы должны использовать исключающий файл, чтобы
rsync
игнорировать файлы, которые он не может прочитать. Список может быть сгенерированfind . -exec test -r '{}'
в исходном каталоге, а затем преобразован в нужный формат файла исключенияrsync
.источник