rsync broken pipe

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Benutzeravatar
weshalb
Beiträge: 1265
Registriert: 16.05.2012 14:19:49

rsync broken pipe

Beitrag von weshalb » 14.11.2018 07:46:20

Hallo, ich bin nach wie vor dabei, ein Backup über Internet zu fahren und stoße auf Probleme hinsichtlich abgebrochener Verbindungen.

Tag 11 > Backup ok
Tag 12 > Backup ok
Tag 13 > broken pipe, Ordner sind teilweise leer
Tag 14 > Rsync fängt an, alle fehlenden Daten von Tag 13 nochmal neu zu schreiben/synchronisieren, anstatt Ordner 12 bzw. irgendein vorhandenes Vollbackup zu berücksichtigen


Was kann man dagegen tun?

DeletedUserReAsG

Re: rsync broken pipe

Beitrag von DeletedUserReAsG » 14.11.2018 07:57:12

weshalb hat geschrieben: ↑ zum Beitrag ↑
14.11.2018 07:46:20
Was kann man dagegen tun?
Sein Script entsprechend anpassen.

Benutzeravatar
weshalb
Beiträge: 1265
Registriert: 16.05.2012 14:19:49

Re: rsync broken pipe

Beitrag von weshalb » 14.11.2018 08:34:31

Wie macht man in einem Script klar, dass letzte "richtige" Verzeichnis zum Abgleich zu benutzen? Rsync kann schlecht wissen, wo es ein Broken Pipe gab.

Meine Idee wäre inzwischen, das Backup mehrmals über den Tag verteilt anzuschupsen.

Was meinst du?

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

Re: rsync broken pipe

Beitrag von MSfree » 14.11.2018 08:51:47

weshalb hat geschrieben: ↑ zum Beitrag ↑
14.11.2018 08:34:31
Rsync kann schlecht wissen, wo es ein Broken Pipe gab.
Du kannst den Rückgabewert von rsync nutzen, um festzustellen, ob rsync erfolgreich durchgelaufen ist, z.B.:

Code: Alles auswählen

#!/bin/sh

while ! \
  rsync [diverse Optionen]
do
  sleep 60
  echo "retrying"
done

Benutzeravatar
weshalb
Beiträge: 1265
Registriert: 16.05.2012 14:19:49

Re: rsync broken pipe

Beitrag von weshalb » 14.11.2018 09:58:23

MSfree hat geschrieben: ↑ zum Beitrag ↑
14.11.2018 08:51:47
weshalb hat geschrieben: ↑ zum Beitrag ↑
14.11.2018 08:34:31
Rsync kann schlecht wissen, wo es ein Broken Pipe gab.
Du kannst den Rückgabewert von rsync nutzen, um festzustellen, ob rsync erfolgreich durchgelaufen ist, z.B.:

Code: Alles auswählen

#!/bin/sh

while ! \
  rsync [diverse Optionen]
do
  sleep 60
  echo "retrying"
done
Meine Scriptkenntnisse sind nicht sonderlich. Ich nehme ein bereits Fertiges. Kannst du mir sagen, an welcher Stelle man das einfügen könnte?

http://nopaste.debianforum.de/40483

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

Re: rsync broken pipe

Beitrag von MSfree » 14.11.2018 10:40:36

Zeilen 62, 69 und 76 beinhalten jeweils die eigentlichen rsync-Aufrufe in der Form:

Code: Alles auswählen

$RSYNC -e "$S" -avR "$FROMSSH:\"$SOURCE\"" "${RSYNCCONF[@]}" "$TARGET"$TODAY $INC >> $LOG 2>&1
if [ $? -ne 0 ]; then
  ERROR=1
fi 
Achtung, die Zeilen unterscheiden sich im Detail! Also bitte nicht folgenden Block per Copy-n-Paste blind übernehmen.

Diese drei Blöcke könntest du nach dem Schema

Code: Alles auswählen

while ! \
  $RSYNC -e "$S" -avR "$FROMSSH:\"$SOURCE\"" "${RSYNCCONF[@]}" "$TARGET"$TODAY $INC >> $LOG 2>&1
do
  sleep 60
  echo "retrying" >> $LOG
done
umbauen.

Durch das Neustarten von rsync im Fehlerfall kann man sich die Fehlerbehandlung sparen. Der einzige Knackpunkt dabei ist, daß rsync theoretisch in eine Endlosschleife sacken könnte, wenn die wiederholten Versuche immer wieder fehlschlagen. Ich verwende diese Konstruktion aber inzwischen midestens 10 Jahre und hatte damit bisher keine Probleme. "retrying" kommt bei mir alle 3-4 Monate einmal vor, und mehr als 3 "retrying" habe ich noch nicht gesehen.

Im Prinzip könnte man noch die Zahl der Neuversuche hochzählen und einen Schwellwert einbauen, nach dem endgültig aufgegeben wird, damit es keine Endlosschleife gibt.

Auch die Wartezeit zwischen zwei Versuchen (sleep 60) kann man ein wenig runtersetzen. In meinem Fall (rsync über Internet) haben sich 60 Sekunden bewährt, im LAN kann man auch mit vielleicht 3-5 Sekunden auskommen.

Benutzeravatar
weshalb
Beiträge: 1265
Registriert: 16.05.2012 14:19:49

Re: rsync broken pipe

Beitrag von weshalb » 14.11.2018 10:45:35

Herzlichen Dank erstmal!

Benutzeravatar
weshalb
Beiträge: 1265
Registriert: 16.05.2012 14:19:49

Re: rsync broken pipe

Beitrag von weshalb » 20.11.2018 09:46:44

Kurze Rückmeldung:

Das Script läuft mit den Anpassungen nun seit 6 Tagen hervorragend durch und hat bereits gegen einen Verbindungsabbruch geholfen. Ich kann es somit empfehlen. Danke nochmals!

Antworten