Як інтерпретувати та виправляти помилку введення / виводу в 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).

Який найкращий спосіб дії? Це просто зламаний файл? Або щось не так з жорстким диском у розташуванні файлу? Чи потрібно просто видалити його і скопіювати одну з резервних версій на місце файлу? Або є щось інше / більше, що я повинен зробити?

Відповіді:


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/*'

Спасибі! Загрожуючи, що це буде ще одне питання, як я можу дізнатися, чи це SRC або каталог TGT, якщо я можу виключити привілеї чи антивірус?
розкриття

Антивірус блокує файли на деякий час. Якщо це проблема, повторна спроба тієї самої команди через деякий час не повинна представляти однакову помилку. Справа у привілеях проста: користуйтеся кореневим обліковим записом як на машинах SRC, так і на TGT. Якщо ви не можете цього зробити, перевірте, чи доступні вам файли, від яких rsync не працює, тобто вони належать до облікового запису, який намагається отримати доступ до них, і якщо вони не мають, ви отримали доступ до них. Якщо це вирішує вашу справу, не забудьте прийняти мою відповідь, це корисно для інших читачів.
MariusMatutiae

Ви неправильно зрозуміли мій коментар вище. Не забудьте, я поставлю нове запитання.
розкриття

TGT - це просто ціль, правда? Тоді може бути краще сказати ціль.
Джаспер

Здається, ваша відповідь породила цілу статтю bobcares.com/blog/rsync-input-output-error_5 (без посилань, звичайно).
Ярослав Нікітенко

3

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

Моє рішення полягало у використанні

--ignore-existing 

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

Звичайно, в цьому випадку мене не хвилювали оновлення існуючих файлів.


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знову встановити . Перш ніж я це зробив, я вирішив rsync2 диски на іншій машині, які запускаю в автономному режимі. rsyncпрацювали так, як слід.

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

Я бігав rsync -ahv --delete drive_x drive_yі все спрацювало нормально.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.