Как интерпретировать и исправить ошибку ввода / вывода в Linux?

21

Я запускаю ежедневное резервное копирование с rsync. Начиная с нескольких дней назад, один из файлов выдает эту ошибку во время резервного копирования:

rsync: read errors mapping "/home/folder/file.ext": Input/output error (5)
WARNING: /home/folder/file.ext failed verification -- update discarded (will try again).

Какой лучший курс действий? Это просто битый файл? Или что-то не так с жестким диском в расположении файла? Должен ли я просто удалить его и скопировать одну из резервных копий в расположение файла? Или есть что-то еще / больше, что я должен сделать?

uncovery
источник

Ответы:

17

Ошибка rsync

 read errors mapping ....: Input/output error (5)

указывает на невозможность rsync для чтения или записи файла. Наиболее вероятные причины этой ошибки - дефекты диска, либо в SRC, либо в каталоге TGT. Однако другие возможности включают недостаточные разрешения, блокировку файлов антивирусными программами и maybeдругие причины.

Первый шаг к диагностике - попытаться скопировать файлы вручную. Это может сработать, если, например, источником ошибки был дефект диска в каталоге TGT; повторив операцию позднее, вы запишете в другой раздел диска, и проблема может испариться.

Кроме того, вы можете обнаружить, что не можете получить доступ к файлу в каталоге SRC. В этом случае я предлагаю вам использовать любую из утилит проверки диска, доступных вашему дистрибутиву.

Недостаточные привилегии, антивирус, легче диагностировать.

Наконец, если у вас есть плохой сектор в каталоге SRC, вы можете исключить его из будущих запусков rsync с помощью

rsync -av --exclude='/home/my_name/directory_with_corrupt_files/*'
MariusMatutiae
источник
Благодарность! Риск того, что это другой вопрос, как мне узнать, является ли это SRC или каталогом TGT, если я могу исключить привилегии или антивирус?
открытие
Антивирус блокирует файлы на некоторое время. Если это проблема, повторная попытка той же команды через некоторое время не должна представлять ту же ошибку. Вопрос о привилегиях прост: используйте учетную запись root на компьютерах SRC и TGT. Если вы не можете этого сделать, убедитесь, что файлы, в которых произошел сбой rsync, доступны вам, т. Е. Принадлежат той учетной записи, которая пытается получить к ним доступ, а если нет, у вас есть доступ для чтения к ним. Если это решит вашу проблему, пожалуйста, не забудьте принять мой ответ, это полезно для других читателей.
MariusMatutiae
Вы неправильно поняли мой комментарий выше. Неважно, я задам новый вопрос.
открытие
TGT просто цель, верно? Может быть, лучше просто сказать цель.
Джаспер
Похоже, ваш ответ породил целую статью bobcares.com/blog/rsync-input-output-error_5 (без ссылок, конечно).
Ярослав Никитенко
3

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

Мое решение было использовать

--ignore-existing 

вариант. Таким образом, я мог запустить синхронизацию в цикле, пока не увидел состояние выхода 0.

Конечно, в этом случае меня не заботили обновления существующих файлов.

user84207
источник
0

У меня есть 2 внешних диска, которые я синхронизирую, используя rsync. Я регулярно выполняю эту задачу на одной из двух машин и часто для удобства переключаюсь с одной на другую. У меня есть 4 машины с Debian 9, и я использую эти диски на каждой из них.

Этим утром я использовал следующее:

rsync -ahv --delete drive-x drive-y 

и был удивлен, получив несколько сотен заявленных отказов.

в основном: rsync: readlink_stat... failed: Input/output error (5)
также:rsync: rsync: recv_generator: mkdir ... failed: Read-only file system (30)

В процессе выяснения того, что произошло, я дважды перемонтировал диски, перезагружал их, работал rsyncбез них, --deleteи в основном мои обычные попытки исправить то, что надежно работало в течение длительного времени. Даже думал об установке rsyncснова. Прежде чем я это сделал, я решил rsyncиспользовать 2 диска на другом компьютере, который я запускаю в автономном режиме. rsyncработал так, как должен.

Прочитав материал, размещенный здесь, я установил clamav, обновил подписи и отсканировал мой домашний каталог. Я регулярно использую это на другой машине. Я нашел 1 и только 1 PUA и удалил его. Я всегда удаляю PUA. Затем я перемонтировал два диска на этом компьютере и добавил разные тестовые файлы и папки на каждый диск.

Я побежал, rsync -ahv --delete drive_x drive_yи все работало нормально.

user1003553
источник