rdiff-backup stoppt mit Fehlermeldung [GELÖST]

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
JamesByrnes
Beiträge: 109
Registriert: 24.11.2021 11:11:04

rdiff-backup stoppt mit Fehlermeldung [GELÖST]

Beitrag von JamesByrnes » 25.01.2022 08:33:17

Hallo,

ich nutze zur Sicherung des Home-Verzeichnisses rdiff-backup. Das lief seit 3 Jahren täglich ganz gut mit

Code: Alles auswählen

30 07  *  *  * /usr/bin/rdiff-backup --exclude-filelist /home/james/exclude-list /home/james/ /home/Backups/
und in der exclude-list stehen überwiegend versteckte Dateien und verstekcze Verzeichnisse drin.

Heute Morgen klappte das Backup nicht:

Code: Alles auswählen

Fatal Error: It appears that a previous rdiff-backup session with process
id 3784 is still running.  If two different rdiff-backup processes write
the same repository simultaneously, data corruption will probably
result.  To proceed with regress anyway, rerun rdiff-backup with the
--force option.
Hier bin ich überfragt, da kein weiterer rdiff-backup-Prozess laufen kann, wenn der Rechner ausgeschaltet war. Gestern gab es auch keine Fehlermeldung.
Wenn ich die Option "--force" wie empfohlen verwende, bekomme ich diese Fehlermeldungen:

Code: Alles auswählen

Previous backup seems to have failed, regressing destination now.
Exception '[Errno 22] Invalid argument' raised of class '<class 'OSError'>':
  File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 395, in error_check_Main
    Main(arglist)
  File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 417, in Main
    take_action(rps)
  File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 353, in take_action
    Backup(rps[0], rps[1])
  File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 433, in Backup
    backup_final_init(rpout)
  File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 623, in backup_final_init
    checkdest_if_necessary(rpout)
  File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 1132, in checkdest_if_necessary
    dest_rp.conn.regress.Regress(dest_rp)
  File "/usr/lib/python3/dist-packages/rdiff_backup/regress.py", line 71, in Regress
    ITR(rf.index, rf)
  File "/usr/lib/python3/dist-packages/rdiff_backup/rorpiter.py", line 313, in __call__
    last_branch.fast_process(*args)
  File "/usr/lib/python3/dist-packages/rdiff_backup/regress.py", line 295, in fast_process
    self.restore_orig_regfile(rf)
  File "/usr/lib/python3/dist-packages/rdiff_backup/regress.py", line 321, in restore_orig_regfile
    rpath.copy_attribs(rf.metadata_rorp, tf)
  File "/usr/lib/python3/dist-packages/rdiff_backup/rpath.py", line 238, in copy_attribs
    rpout.write_ea(rpin.get_ea())
  File "/usr/lib/python3/dist-packages/rdiff_backup/rpath.py", line 1664, in write_ea
    ea.write_to_rp(self)
  File "/usr/lib/python3/dist-packages/rdiff_backup/eas_acls.py", line 131, in write_to_rp
    self.clear_rp(rp)
  File "/usr/lib/python3/dist-packages/rdiff_backup/eas_acls.py", line 106, in clear_rp
    rp.conn.xattr.remove(rp.path, name, rp.issym())

Traceback (most recent call last):
  File "/usr/bin/rdiff-backup", line 32, in <module>
    rdiff_backup.Main.error_check_Main(sys.argv[1:])
  File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 395, in error_check_Main
    Main(arglist)
  File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 417, in Main
    take_action(rps)
  File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 353, in take_action
    Backup(rps[0], rps[1])
  File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 433, in Backup
    backup_final_init(rpout)
  File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 623, in backup_final_init
    checkdest_if_necessary(rpout)
  File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 1132, in checkdest_if_necessary
    dest_rp.conn.regress.Regress(dest_rp)
  File "/usr/lib/python3/dist-packages/rdiff_backup/regress.py", line 71, in Regress
    ITR(rf.index, rf)
  File "/usr/lib/python3/dist-packages/rdiff_backup/rorpiter.py", line 313, in __call__
    last_branch.fast_process(*args)
  File "/usr/lib/python3/dist-packages/rdiff_backup/regress.py", line 295, in fast_process
    self.restore_orig_regfile(rf)
  File "/usr/lib/python3/dist-packages/rdiff_backup/regress.py", line 321, in restore_orig_regfile
    rpath.copy_attribs(rf.metadata_rorp, tf)
  File "/usr/lib/python3/dist-packages/rdiff_backup/rpath.py", line 238, in copy_attribs
    rpout.write_ea(rpin.get_ea())
  File "/usr/lib/python3/dist-packages/rdiff_backup/rpath.py", line 1664, in write_ea
    ea.write_to_rp(self)
  File "/usr/lib/python3/dist-packages/rdiff_backup/eas_acls.py", line 131, in write_to_rp
    self.clear_rp(rp)
  File "/usr/lib/python3/dist-packages/rdiff_backup/eas_acls.py", line 106, in clear_rp
    rp.conn.xattr.remove(rp.path, name, rp.issym())
OSError: [Errno 22] Invalid argument
Was kann ich jetzt tun, damit die Sicherung wieder funktioniert?

Viele Grüße

James
Zuletzt geändert von JamesByrnes am 26.01.2022 09:50:42, insgesamt 1-mal geändert.

Benutzeravatar
debilian
Beiträge: 1199
Registriert: 21.05.2004 14:03:04
Wohnort: 192.168.43.7
Kontaktdaten:

Re: rdiff-backup stoppt mit Fehlermeldung

Beitrag von debilian » 25.01.2022 14:57:15

with process
id 3784
den Prozess gibt es nicht?
vielleicht liegt ein Lockfile rum?
-- nichts bewegt Sie wie ein GNU --

JamesByrnes
Beiträge: 109
Registriert: 24.11.2021 11:11:04

Re: rdiff-backup stoppt mit Fehlermeldung

Beitrag von JamesByrnes » 25.01.2022 15:04:34

debilian hat geschrieben: ↑ zum Beitrag ↑
25.01.2022 14:57:15
with process
id 3784
den Prozess gibt es nicht?
vielleicht liegt ein Lockfile rum?
Nein, den Prozess gab es nicht mehr. Lock-File? Wo suche ich da am besten?

Benutzeravatar
MSfree
Beiträge: 10776
Registriert: 25.09.2007 19:59:30

Re: rdiff-backup stoppt mit Fehlermeldung

Beitrag von MSfree » 25.01.2022 15:33:45

JamesByrnes hat geschrieben: ↑ zum Beitrag ↑
25.01.2022 15:04:34
Lock-File? Wo suche ich da am besten?
Wenn dein System nicht allzu verbastelt oder veraltet ist, dann sollten Locks in /run/lock abgelegt werden. Allerdings ist das eine RAM-Disk, dessen Inhalt ein Reboot nicht überlebt.

Früher war das mal in /var/run, heute sollte /var/run nur noch ein symbolischer Link auf /run sein. Sollte der Link fehlen, kann es sein, daß Lock-Dateien Reboots überleben, weil sie dann im normalen Dateisystem abgelegt wurden.

Dein Backupmedium ist aber nicht voll?

JamesByrnes
Beiträge: 109
Registriert: 24.11.2021 11:11:04

Re: rdiff-backup stoppt mit Fehlermeldung

Beitrag von JamesByrnes » 25.01.2022 15:49:10

Also eine Lock-Datei ist nirgends zu finden. Das Backup-Medium hat mehr als genug Speicherkapazität frei. Dennoch kommt nach wie vor diese Fehlerkaskade:

[codePrevious backup seems to have failed, regressing destination now.
Exception '[Errno 22] Invalid argument' raised of class '<class 'OSError'>':
File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 395, in error_check_Main
Main(arglist)
File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 417, in Main
take_action(rps)
File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 353, in take_action
Backup(rps[0], rps[1])
File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 433, in Backup
backup_final_init(rpout)
File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 623, in backup_final_init
checkdest_if_necessary(rpout)
File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 1132, in checkdest_if_necessary
dest_rp.conn.regress.Regress(dest_rp)
File "/usr/lib/python3/dist-packages/rdiff_backup/regress.py", line 71, in Regress
ITR(rf.index, rf)
File "/usr/lib/python3/dist-packages/rdiff_backup/rorpiter.py", line 313, in __call__
last_branch.fast_process(*args)
File "/usr/lib/python3/dist-packages/rdiff_backup/regress.py", line 295, in fast_process
self.restore_orig_regfile(rf)
File "/usr/lib/python3/dist-packages/rdiff_backup/regress.py", line 321, in restore_orig_regfile
rpath.copy_attribs(rf.metadata_rorp, tf)
File "/usr/lib/python3/dist-packages/rdiff_backup/rpath.py", line 238, in copy_attribs
rpout.write_ea(rpin.get_ea())
File "/usr/lib/python3/dist-packages/rdiff_backup/rpath.py", line 1664, in write_ea
ea.write_to_rp(self)
File "/usr/lib/python3/dist-packages/rdiff_backup/eas_acls.py", line 131, in write_to_rp
self.clear_rp(rp)
File "/usr/lib/python3/dist-packages/rdiff_backup/eas_acls.py", line 106, in clear_rp
rp.conn.xattr.remove(rp.path, name, rp.issym())

Traceback (most recent call last):
File "/usr/bin/rdiff-backup", line 32, in <module>
rdiff_backup.Main.error_check_Main(sys.argv[1:])
File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 395, in error_check_Main
Main(arglist)
File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 417, in Main
take_action(rps)
File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 353, in take_action
Backup(rps[0], rps[1])
File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 433, in Backup
backup_final_init(rpout)
File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 623, in backup_final_init
checkdest_if_necessary(rpout)
File "/usr/lib/python3/dist-packages/rdiff_backup/Main.py", line 1132, in checkdest_if_necessary
dest_rp.conn.regress.Regress(dest_rp)
File "/usr/lib/python3/dist-packages/rdiff_backup/regress.py", line 71, in Regress
ITR(rf.index, rf)
File "/usr/lib/python3/dist-packages/rdiff_backup/rorpiter.py", line 313, in __call__
last_branch.fast_process(*args)
File "/usr/lib/python3/dist-packages/rdiff_backup/regress.py", line 295, in fast_process
self.restore_orig_regfile(rf)
File "/usr/lib/python3/dist-packages/rdiff_backup/regress.py", line 321, in restore_orig_regfile
rpath.copy_attribs(rf.metadata_rorp, tf)
File "/usr/lib/python3/dist-packages/rdiff_backup/rpath.py", line 238, in copy_attribs
rpout.write_ea(rpin.get_ea())
File "/usr/lib/python3/dist-packages/rdiff_backup/rpath.py", line 1664, in write_ea
ea.write_to_rp(self)
File "/usr/lib/python3/dist-packages/rdiff_backup/eas_acls.py", line 131, in write_to_rp
self.clear_rp(rp)
File "/usr/lib/python3/dist-packages/rdiff_backup/eas_acls.py", line 106, in clear_rp
rp.conn.xattr.remove(rp.path, name, rp.issym())
OSError: [Errno 22] Invalid argument][/code]

Benutzeravatar
MSfree
Beiträge: 10776
Registriert: 25.09.2007 19:59:30

Re: rdiff-backup stoppt mit Fehlermeldung

Beitrag von MSfree » 25.01.2022 15:57:35

Befinden sich in deinem Quellverzeichnis (das du sichern willst) Dateien mit komischen Sonderzeichen wie "<", ">", "?" etc., mit denen rdiff-backup nicht zurecht kommt?

JamesByrnes
Beiträge: 109
Registriert: 24.11.2021 11:11:04

Re: rdiff-backup stoppt mit Fehlermeldung

Beitrag von JamesByrnes » 25.01.2022 16:15:09

Nein, das ganz normale Dateinamen. Sonderzeichen sind da keine drin.

AxelMD
Beiträge: 1381
Registriert: 15.03.2009 08:02:11

Re: rdiff-backup stoppt mit Fehlermeldung

Beitrag von AxelMD » 25.01.2022 16:16:49

Nimm doch mal ein neues Speichermedium.
Probleme dieser Art mit rdiff-backup hatte ich auch schon.
Richtig lösen konnte ich die auch nie, was aber an meinen Kenntnissen liegen kann.
Hat deiner Speichermedium ext4? Nicht NTFS verwenden!
Dann habe ich immer alles neu gemacht, peinlich.

Jetzt migriere ich gerade zu rsync mit dem MSfree Script.

viewtopic.php?t=183270


rdiff-backup Thread: viewtopic.php?t=183286

JamesByrnes
Beiträge: 109
Registriert: 24.11.2021 11:11:04

Re: rdiff-backup stoppt mit Fehlermeldung

Beitrag von JamesByrnes » 25.01.2022 16:35:20

AxelMD hat geschrieben: ↑ zum Beitrag ↑
25.01.2022 16:16:49
Hat deiner Speichermedium ext4? Nicht NTFS verwenden!
Vielleicht liegt es daran. Das ist ein NFS-Mount. Aber hatte bisher einwandfrei funktioniert. Ich habe jetzt einmal ein Zielverzeichnis auf einer internen Platte getestet, da läuft es reibungslos.

AxelMD
Beiträge: 1381
Registriert: 15.03.2009 08:02:11

Re: rdiff-backup stoppt mit Fehlermeldung

Beitrag von AxelMD » 25.01.2022 16:45:21

Kannst Du dein NFS Filesystem prüfen?

JamesByrnes
Beiträge: 109
Registriert: 24.11.2021 11:11:04

Re: rdiff-backup stoppt mit Fehlermeldung

Beitrag von JamesByrnes » 25.01.2022 17:43:47

Code: Alles auswählen

showmount -e
Export list for asteriskpbx:
/home/backups/james 192.168.0.0/24
bzw.
Schreiben, lesen und Löschen auf den NFS-Mount funktioniert problemlos.

Benutzeravatar
heisenberg
Beiträge: 3564
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: rdiff-backup stoppt mit Fehlermeldung

Beitrag von heisenberg » 25.01.2022 17:55:59

Internetsuche hilft: rdiff-backup nfs error 22 weist sofort auf einen Fehler hin:

https://technpol.wordpress.com/2013/04/ ... le-system/

Englisch - rdiff-backup hat ein Problem damit, wenn auf dem NFS-Server nicht alle Gruppen sind, die auf dem gesicherten System sind. Falls dem so ist(und wirklich nur falls es tatsächlich das ist), dann würde ich die Backupmethode so nicht verwenden. Auf NIS+ hätte ich keinen Bock.
Jede Rohheit hat ihren Ursprung in einer Schwäche.

JamesByrnes
Beiträge: 109
Registriert: 24.11.2021 11:11:04

Re: rdiff-backup stoppt mit Fehlermeldung

Beitrag von JamesByrnes » 25.01.2022 19:10:24

heisenberg hat geschrieben: ↑ zum Beitrag ↑
25.01.2022 17:55:59
Internetsuche hilft: rdiff-backup nfs error 22 weist sofort auf einen Fehler hin:

https://technpol.wordpress.com/2013/04/ ... le-system/

Englisch - rdiff-backup hat ein Problem damit, wenn auf dem NFS-Server nicht alle Gruppen sind, die auf dem gesicherten System sind. Falls dem so ist(und wirklich nur falls es tatsächlich das ist), dann würde ich die Backupmethode so nicht verwenden. Auf NIS+ hätte ich keinen Bock.
Danke, das habe ich gerade auch gesehen.
Auf Zielsystem:

Code: Alles auswählen

id
uid=1001(james) gid=1001(james) Gruppen=1001(james)
Auf Quellsystem:

Code: Alles auswählen

id
uid=1000(james) gid=1000(james) Gruppen=1000(james)
Das lag daran, dass ich auf dem RaspberryPi (Zielsystem) ein neues System installiert hatte und 1000 für pi noch reserviert war. Ich habe das inzwischen zu

Code: Alles auswählen

id
uid=1000(james) gid=1000(james) Gruppen=1000(james)
angepasst. Die Fehlermeldung kommt nach wie vor.

Ich finde rdiff-backup eigentlich für dieses Backup am idealsten. Ich sichere wichtige Dokumente aus meinem Home-Verzeichnis täglich. Erstens falls die Originaldaten verloren gehen und zweitens, um ältere Versionen einer Datei oder eines gelöschten Verzeichnisses doch wieder hervor krammen zu können. Das war schon öfters sehr hilfreich.

Benutzeravatar
MSfree
Beiträge: 10776
Registriert: 25.09.2007 19:59:30

Re: rdiff-backup stoppt mit Fehlermeldung

Beitrag von MSfree » 25.01.2022 20:12:06

JamesByrnes hat geschrieben: ↑ zum Beitrag ↑
25.01.2022 19:10:24
... angepasst. Die Fehlermeldung kommt nach wie vor.
Das hätte mich ehrlicherweise auch überrascht. NFS arbeitet nämlich mit numerischen UID/GID-Daten. Ob der Benutzer auf der anderen Seite in der /etc/passwd, /etc/groups steht, ist für die Clientseite und den NFS-Server eigentlich egal.

Google findet auf der Suche nach Exception '[Errno 22] Invalid argument' raised of class '<class 'OSError'>': folgendes:

https://www.pythonpool.com/oserror-errn ... nt-solved/
und was ich dem entnehme, bestärkt mich in meiner Vermutung, daß du im Home irgendwelche Dateien mit Dateinamen hast, die Python nicht mag. Möglicherweise wurde da in irgendeinem, Unterveichnis von einer Anwendung etwas abgelegt, das der Dateinamenskonvention von Python widerspricht. Der Cache deines Mailprogramms und der Cache deines Webbrowsers käme mir da als erstes in den Sinn.

Du kannst jetzt z.B. mal sukzessive ein Verzeichnis nach dem anderen aus deinem Home irgendwo anders hin verschieben und dann das Backup starten. Sobald das Backup erfolgreich ist, weißt du, in welchem Verzeichnis das Problem liegt. Dann schiebst du das Problemverzeichnis wieder ins Home und verfährrt mit dessen Unterverzeichnissen analog.

JamesByrnes
Beiträge: 109
Registriert: 24.11.2021 11:11:04

Re: rdiff-backup stoppt mit Fehlermeldung

Beitrag von JamesByrnes » 26.01.2022 08:47:17

JamesByrnes hat geschrieben: ↑ zum Beitrag ↑
25.01.2022 19:10:24
Du kannst jetzt z.B. mal sukzessive ein Verzeichnis nach dem anderen aus deinem Home irgendwo anders hin verschieben und dann das Backup starten. Sobald das Backup erfolgreich ist, weißt du, in welchem Verzeichnis das Problem liegt.
Das klingt zwar logisch und schön strukturiert, ist aber wenig praktikabel bei 190 sichtbaren Verzeichnissen. Die versteckten Verzeichnisse habe ich bereits excluded. Das wäre ein weiteres Argument kein Tar-Backup zu machen, weil das einfach zu lange dauert.
Vielversprechender würde ich eine Methode halten - vielleicht ein Python-Script -, bei der störende Element anzeigt wird.

Benutzeravatar
MSfree
Beiträge: 10776
Registriert: 25.09.2007 19:59:30

Re: rdiff-backup stoppt mit Fehlermeldung

Beitrag von MSfree » 26.01.2022 09:11:42

JamesByrnes hat geschrieben: ↑ zum Beitrag ↑
26.01.2022 08:47:17
Das klingt zwar logisch und schön strukturiert, ist aber wenig praktikabel bei 190 sichtbaren Verzeichnissen
Kennst du die Bisektionsmethode?

Du verschiebst die Hälte der Verzeichnisse und testest danach. Taucht der Fehler auf, ist die Quelle im nicht verschobenen Bestand und umgekehrt. Dann nimmst du vom betroffenen Bestand wieder die Hälfte und iterierst du durch, bis nur noch ein Verzeichnis über ist.

Bei 190 Verzeichnissen sind das maximal 8 Iterationen, um die Fehlerquelle zu finden.

JamesByrnes
Beiträge: 109
Registriert: 24.11.2021 11:11:04

Re: rdiff-backup stoppt mit Fehlermeldung

Beitrag von JamesByrnes » 26.01.2022 09:50:24

Nein, kannte ich namentlich so noch nicht. Aber es ist ganz interessant.
Ich habe auf der Backupplatte noch 28% (61GB) frei, vielleicht das doch zu wenig.

Ich würde mal sagen, wir beenden die Diskussion hier. Ich habe genug Informationen, um eine Lösung zu finden.

Vielen Dank für die Diskussion.

AxelMD
Beiträge: 1381
Registriert: 15.03.2009 08:02:11

Re: rdiff-backup stoppt mit Fehlermeldung [GELÖST]

Beitrag von AxelMD » 26.01.2022 12:45:37

Hallo, die Lösung interessiert mich schon.

Teilst Du uns diese mit?

MfG
AxelMD

JamesByrnes
Beiträge: 109
Registriert: 24.11.2021 11:11:04

Re: rdiff-backup stoppt mit Fehlermeldung [GELÖST]

Beitrag von JamesByrnes » 26.01.2022 15:46:41

AxelMD hat geschrieben: ↑ zum Beitrag ↑
26.01.2022 12:45:37
Hallo, die Lösung interessiert mich schon.

Teilst Du uns diese mit?

MfG
AxelMD
Ja, momentan muss ich erst einmal die Grundlagen dazu schaffen. Große USB-Platten liegen nicht so ohne Weiteres im Regal.

JamesByrnes
Beiträge: 109
Registriert: 24.11.2021 11:11:04

Re: rdiff-backup stoppt mit Fehlermeldung [GELÖST]

Beitrag von JamesByrnes » 04.02.2022 08:17:04

Die Lösung sieht so aus:
  • Neue, größere Festplatte am Backupsystem und als NFS zur Verfügung gestellt.
  • Neustart des Rdiff-Backup
Leider hat es nichts gebracht, das alte Rdiff-Backup auf die größere Platte zu synchronisieren. Möglicherweise lag das Problem irgendwo in dieser Struktur.

Antworten