Làm cách nào để diễn giải và sửa lỗi Đầu vào / đầu ra trong Linux?


21

Tôi đang chạy một bản sao lưu hàng ngày với rsync. Bắt đầu từ vài ngày trước, một trong những tệp đã bị lỗi này trong quá trình sao lưu:

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

Quá trình hành động tốt nhất là gì? Có phải nó chỉ là một tập tin bị hỏng? Hoặc có điều gì đó không đúng với ổ cứng ở vị trí của tệp? Tôi có nên xóa nó và sao chép một trong các phiên bản đã sao lưu vào vị trí của tệp không? Hoặc có điều gì khác / nhiều hơn mà tôi nên làm?

Câu trả lời:


16

Lỗi rsync

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

cho biết sự bất khả thi của rsync để đọc hoặc ghi tệp. Các nguyên nhân rất có thể gây ra lỗi này là lỗi đĩa, trong SRC hoặc trong thư mục TGT. Tuy nhiên, các khả năng khác bao gồm không đủ quyền, khóa tệp bằng các chương trình chống vi-rút và maybecác nguyên nhân khác.

Bước đầu tiên để chẩn đoán là cố gắng sao chép các tệp theo cách thủ công. Điều này có thể hoạt động nếu, ví dụ, nguồn lỗi là một lỗi đĩa trong thư mục TGT; bằng cách lặp lại thao tác sau đó, bạn sẽ ghi vào một phần khác của đĩa và vấn đề có thể đã bốc hơi.

Ngoài ra, bạn có thể phát hiện ra rằng bạn không thể truy cập tệp trong thư mục SRC. Trong trường hợp này, tôi khuyên bạn nên sử dụng bất kỳ tiện ích kiểm tra đĩa nào có sẵn cho bản phân phối của bạn.

Không đủ đặc quyền, chống vi-rút, dễ chẩn đoán hơn.

Cuối cùng, nếu bạn có một khu vực xấu trong thư mục SRC của mình, bạn có thể loại trừ điều đó khỏi các lần chạy rsync trong tương lai bằng phương tiện

rsync -av --exclude='/home/my_name/directory_with_corrupt_files/*'

Cảm ơn! Có nguy cơ đây là một câu hỏi khác, làm cách nào để biết đó là thư mục SRC hoặc TGT nếu tôi có thể loại trừ các đặc quyền hoặc chống vi-rút?
khám phá

Một chương trình chống vi-rút khóa các tập tin trong một thời gian. Nếu đó là vấn đề, hãy thử lại cùng một lệnh một thời gian sau đó sẽ không xuất hiện cùng một lỗi. Vấn đề đặc quyền rất dễ dàng: sử dụng tài khoản root trên cả máy SRC và TGT. Nếu bạn không thể làm điều đó, hãy kiểm tra xem các tệp mà rsync không thể truy cập được đối với bạn, tức là chúng thuộc tài khoản đang cố truy cập chúng và nếu chúng không đọc thì bạn có quyền truy cập vào chúng. Nếu điều này giải quyết vấn đề của bạn, hãy nhớ chấp nhận câu trả lời của tôi, nó hữu ích cho những người đọc khác.
MariusMatutiae

Bạn đã hiểu nhầm ý kiến ​​của tôi ở trên. Nevermind, tôi sẽ hỏi một câu hỏi mới.
khám phá

TGT chỉ là mục tiêu, phải không? Có thể tốt hơn để chỉ nói mục tiêu, sau đó.
Jasper

3

Tôi gặp vấn đề tương tự, tôi gặp phải một thiết bị gắn cầu chì qua USB, thường xuyên ngắt kết nối, gây ra lỗi IO. Sao lưu của tôi không bao giờ có thể kết thúc vì các lỗi IO sẽ bắt đầu giữa chừng với rsync và mặc dù chạy rsync liên tục, đến một lúc nào đó, đồng bộ hóa sẽ không tiến triển ngoài việc cập nhật các tệp hiện có.

Giải pháp của tôi là sử dụng

--ignore-existing 

Lựa chọn. Bằng cách này, tôi có thể chạy đồng bộ hóa trong một vòng lặp cho đến khi thấy trạng thái thoát 0.

Tất nhiên, trong trường hợp này tôi không quan tâm đến việc cập nhật các tập tin hiện có.


0

Tôi có 2 ổ đĩa ngoài tôi giữ đồng bộ, sử dụng rsync. Tôi thực hiện nhiệm vụ này thường xuyên trên một trong hai máy và thường xuyên chuyển đổi từ máy này sang máy kia để thuận tiện. Tôi có 4 máy chạy Debian 9 và sử dụng các ổ đĩa này trên mỗi máy.

Sáng nay tôi đã sử dụng như sau:

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

và đã rất ngạc nhiên khi có vài trăm báo cáo thất bại.

chủ yếu là: rsync: readlink_stat... failed: Input/output error (5)
cũng:rsync: rsync: recv_generator: mkdir ... failed: Read-only file system (30)

Trong quá trình tìm hiểu điều gì đã xảy ra, tôi đã nhắc lại các ổ đĩa hai lần, khởi động lại, chạy rsyncmà không cần --deletevà về cơ bản, tôi cố gắng sửa một cái gì đó đáng tin cậy trong một thời gian dài. Thậm chí nghĩ về việc cài đặt rsynclại. Trước khi tôi làm điều đó, tôi đã quyết định rsync2 ổ đĩa trên máy kia, tôi chạy ngoại tuyến. rsynclàm việc theo cách nó nên

Đọc xong tài liệu được đăng ở đây, tôi đã cài đặt clamav, cập nhật chữ ký và quét thư mục nhà của tôi. Tôi sử dụng điều này thường xuyên trên một máy khác. Tôi tìm thấy 1 và chỉ 1 PUA, và tôi đã xóa nó. Tôi luôn xóa PUA. Sau đó tôi đã kết nối hai ổ đĩa với máy này và thêm các tệp và thư mục kiểm tra khác nhau vào mỗi ổ đĩa.

Tôi đã chạy rsync -ahv --delete drive_x drive_yvà mọi thứ hoạt động tốt.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.