Wie interpretiere und behebe ich einen Ein- / Ausgabefehler unter Linux?

21

Ich führe ein tägliches Backup mit rsync durch. Vor einigen Tagen gestartet, hat eine der Dateien diesen Fehler während der Sicherung ausgelöst:

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

Was ist die beste Vorgehensweise? Ist es nur eine kaputte Datei? Oder stimmt etwas mit der Festplatte am Speicherort der Datei nicht? Sollte ich es einfach löschen und eine der gesicherten Versionen in den Speicherort der Datei kopieren? Oder gibt es noch etwas, was ich tun sollte?

aufdecken
quelle

Antworten:

16

Der Rsync-Fehler

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

Gibt an, dass rsync keine Datei lesen oder schreiben kann. Die wahrscheinlichsten Ursachen für diesen Fehler sind Datenträgerfehler, entweder im SRC oder im TGT-Verzeichnis. Andere Möglichkeiten sind jedoch unzureichende Berechtigungen, Dateisperrung durch Antivirenprogramme und maybeandere Ursachen.

Der erste Schritt zur Diagnose besteht darin, die Dateien manuell zu kopieren. Dies kann beispielsweise funktionieren, wenn die Fehlerquelle ein Datenträgerdefekt im TGT-Verzeichnis war. Wenn Sie den Vorgang zu einem späteren Zeitpunkt wiederholen, schreiben Sie in einen anderen Bereich der Festplatte, und das Problem ist möglicherweise behoben.

Alternativ stellen Sie möglicherweise fest, dass Sie nicht auf die Datei im SRC-Verzeichnis zugreifen können. In diesem Fall schlage ich vor, dass Sie eines der Festplattenprüfprogramme verwenden, die Ihrer Distribution zur Verfügung stehen.

Unzureichende Berechtigungen, Antivirus, sind leichter zu diagnostizieren.

Wenn sich in Ihrem SRC-Verzeichnis ein fehlerhafter Sektor befindet, können Sie dies mit von zukünftigen Rsync-Läufen ausschließen

rsync -av --exclude='/home/my_name/directory_with_corrupt_files/*'
MariusMatutiae
quelle
Vielen Dank! Wie finde ich heraus, ob es sich um das SRC- oder das TGT-Verzeichnis handelt, wenn ich Privilegien oder Virenschutz ausschließen kann?
Aufdeckung
Ein Virenschutzprogramm sperrt Dateien für einige Zeit. Wenn dies das Problem ist, sollte ein erneuter Versuch, den gleichen Befehl einige Zeit später erneut auszuführen, nicht den gleichen Fehler verursachen. Die Frage der Berechtigungen ist einfach: Verwenden Sie das Root-Konto sowohl auf SRC- als auch auf TGT-Computern. Wenn Sie dies nicht tun können, überprüfen Sie, ob die Dateien, auf denen rsync fehlschlägt, für Sie zugänglich sind, dh zu dem Konto gehören, das versucht, auf sie zuzugreifen. Wenn dies nicht der Fall ist, haben Sie Lesezugriff auf diese Dateien. Wenn dies Ihre Angelegenheit löst, denken Sie daran, meine Antwort zu akzeptieren, es ist nützlich für andere Leser.
MariusMatutiae
Sie haben meinen obigen Kommentar falsch verstanden. Egal, ich werde eine neue Frage stellen.
Aufdeckung
TGT ist nur ein Ziel, oder? Könnte besser sein, nur Ziel zu sagen.
Jasper
3

Ich hatte ein ähnliches Problem, ich hatte ein mit einer Sicherung versehenes Gerät über USB, das sich häufig ablöste und E / A-Fehler verursachte. Meine Sicherung konnte nie abgeschlossen werden, da die E / A-Fehler auf halbem Weg mit dem rsync-Vorgang beginnen und die Synchronisierung trotz wiederholter Ausführung von rsync zu einem bestimmten Zeitpunkt nicht über das Aktualisieren vorhandener Dateien hinausgehen würde.

Meine Lösung war zu verwenden

--ignore-existing 

Möglichkeit. Auf diese Weise konnte ich die Synchronisierung in einer Schleife ausführen, bis der Beendigungsstatus 0 angezeigt wurde.

Natürlich war mir in diesem Fall das Aktualisieren bestehender Dateien egal.

user84207
quelle
0

Ich habe 2 externe Laufwerke, die ich synchron verwende rsync. Ich führe diese Aufgabe regelmäßig auf beiden Maschinen durch und wechsle aus Gründen der Benutzerfreundlichkeit häufig von einer zur anderen. Ich habe 4 Maschinen, auf denen Debian 9 läuft, und benutze diese Laufwerke auf jeder von ihnen.

Heute morgen habe ich folgendes benutzt:

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

und war überrascht, ein paar hundert gemeldete Ausfälle zu haben.

meistens: rsync: readlink_stat... failed: Input/output error (5)
auch:rsync: rsync: recv_generator: mkdir ... failed: Read-only file system (30)

Um herauszufinden, was passiert ist, habe ich die Laufwerke zweimal neu gemountet, neu gestartet, rsyncohne ausgeführt --deleteund im Grunde genommen habe ich versucht, etwas zu reparieren, das seit langer Zeit zuverlässig funktioniert hat. Ich habe sogar darüber nachgedacht, es rsyncerneut zu installieren . Vorher habe ich mich für rsyncdie 2 Laufwerke auf dem anderen Rechner entschieden, die ich offline laufen lasse. rsynchat genau so funktioniert, wie es sollte.

Nachdem ich das hier veröffentlichte Material gelesen hatte, installierte ich es clamav, aktualisierte die Signaturen und durchsuchte mein Home-Verzeichnis. Ich benutze dies regelmäßig auf einer anderen Maschine. Ich habe nur 1 PUA gefunden und diese gelöscht. Ich lösche immer PUAs. Anschließend habe ich die beiden Laufwerke mit diesem Computer erneut gemountet und jedem Laufwerk verschiedene Testdateien und -ordner hinzugefügt.

Ich rannte rsync -ahv --delete drive_x drive_yund alles hat gut funktioniert.

user1003553
quelle