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