Fehler beim Löschen des rsync-Befehls „Es ist ein E / A-Fehler aufgetreten - Löschen der Datei wird übersprungen“

16

Ich verwende den Befehl rsync, um Dateien von einem Ubuntu-Server auf einen anderen Ubuntu-Computer zu sichern. Der Sicherungsserver löst ein Skript aus, das den Befehl rysnc verwendet. Hier ist der Befehl, den ich benutze

rsync -rltvh --partial --stats --exclude = .beagle / --exclude =. * --delete-after root @ live_server: / home / / home / live_server_backup / home >> /tmp/logfile.log 2> & 1

live_server ist ohne Passwort ssh-fähig. So funktioniert es. Jetzt liegt das Problem bei

--Delete-After-Option

Nachdem alle Dateien synchronisiert wurden. Am Ende kann ich sehen, wie der Löschvorgang übersprungen wird

E / A-Fehler aufgetreten - Löschen der Datei wird übersprungen

Als ich versuchte, Log zu finden, gab es einen Fehler bei der Dateisynchronisation

rsync: send_files konnte "/home/xyz/Desktop/PPT_session_1_context.pdf" nicht öffnen: Berechtigung verweigert (13)

Mein Verständnis ist also, dass rsync aus Sicherheitsgründen nicht alle Dateien vom Ziel lesen konnte und das Löschen der Dateien überspringt.

Gibt es eine Möglichkeit, --delete-after work auszuführen, selbst wenn ein Berechtigungsfehler vorliegt? Ich möchte keine Löschung erzwingen, da dies in bestimmten Situationen gefährlich sein kann.

XemX
quelle
1
Pssst nochmal ... Das solltest du wirklich.
Armel Larcier

Antworten:

13

Zusätzlicher Hinweis zu diesem Problem:

vanished filesollte die Bedingung nicht auslösen IO error encountered -- skipping file deletion, dies geschieht jedoch häufig, wenn Sie eine Sicherung eines Live-Systems erstellen.

Dies wird durch den rsync-Fehler # 7809 ( https://bugzilla.samba.org/show_bug.cgi?id=7809 ) abgedeckt und sollte in der kommenden Version 3.1.0 behoben werden.

In der Zwischenzeit verwenden:

--ignore-errors         delete even if there are I/O errors
reto
quelle
19

Aus der rsync-Manpage:

--ignore-errors         delete even if there are I/O errors

Damit wird Ihr Problem behoben.

SickAnimations
quelle
2

Sie sollten eine Ausschlussdatei rsyncverwenden, damit die nicht lesbaren Dateien ignoriert werden. Die Liste kann mit find . -exec test -r '{}'im Quellverzeichnis erzeugt und dann in das gewünschte Ausschlussdateiformat massiert werden rsync.

Kyle Jones
quelle
Eigentlich ist mein Quellverzeichnis ziemlich groß (10-12GB). Jedes Mal, wenn Dateien gefunden werden (ohne Leseberechtigung), ist dies kein effizienter Weg. was sagst du?
XemX
Führen Sie es einmal aus, um die Ausschlussliste zu erstellen, und führen Sie es erst dann erneut aus, wenn eine ganze Reihe neuer nicht lesbarer Dateien hinzugefügt wurden. rsync durchläuft den gleichen Baum, also sollte es sowieso nicht so schlimm sein.
Kyle Jones
Ja. Aber so ist mein Szenario. Das tägliche Quellverzeichnis kann solche Dateien einführen. und ich muss die neuen Dateien in Backup-Maschine sichern.
XemX
Gibt es eine funktionierende Lösung dafür? Ich verwende rsync auch für Sicherungen von einem Live-System und wenn ein E / A-Fehler auf dem Lesegerät auftritt, werden die Dateien auf dem Zielgerät gelöscht, was NICHT PASSIEREN SOLLTE!
bzero