rsync über ssh klappt erst bei zweitem Versuch

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
wappo
Beiträge: 110
Registriert: 11.01.2007 14:58:24

rsync über ssh klappt erst bei zweitem Versuch

Beitrag von wappo » 15.11.2010 12:12:36

Hallo zusammen!

Ich habe ein Skript folgender Art, dass per cronjob wöchentlich ausgeführt wird:

Code: Alles auswählen

rsync --numeric-ids --delete --stats -ahe "ssh -i /root/backup/rsync-key" /foo/ $backup_server:/mnt/backup/foo/
rsync --numeric-ids --delete --stats -ahe "ssh -i /root/backup/rsync-key" /bar/ $backup_server:/mnt/backup/bar/
rsync --numeric-ids --delete --stats -ahe "ssh -i /root/backup/rsync-key" /baz/ $backup_server:/mnt/backup/baz/
Jede Woche zeigt sich allerdings folgender Fehler für den ersten Transfer:

Code: Alles auswählen

ssh_exchange_identification: read: Connection reset by peer
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(601) [sender=3.0.7]
Die anderen beiden Transfers funktionierten tadellos.

Das Skript funktioniert einwandfrei manuell ausgeführt sowie bei einem Test-cronjob (führe Skript zur Uhrzeit X aus).

In welchen logs kann ich Aufschluss über den Fehler bekommen?
Der Zielrechner wird nur für das Backup benutzt und daher 1 Woche lang nicht angesprochen. Kann es sein, dass er bei der ersten Anfrage noch nicht bereit ist und erst "aufwachen" muss?

Vielen Dank im Voraus!

wappo
Beiträge: 110
Registriert: 11.01.2007 14:58:24

Re: rsync über ssh klappt erst bei zweitem Versuch

Beitrag von wappo » 15.11.2010 12:36:29

Okay, habe folgendes im auth.log des Zielrechners gefunden:

Code: Alles auswählen

Nov 15 08:03:51 backup sshd[5049]: Accepted publickey for root from xxx.xxx.xxx.xxx port 59842 ssh2
Nov 15 08:03:51 backup sshd[5049]: pam_unix(sshd:session): session opened for user root by (uid=0)
Nov 15 08:03:55 backup sshd[5049]: Received disconnect from xxx.xxx.xxx.xxx: 11: disconnected by user
Nov 15 08:03:55 backup sshd[5049]: pam_unix(sshd:session): session closed for user root
Nov 15 08:03:55 backup sshd[5126]: Accepted publickey for root from xxx.xxx.xxx.xxx port 59843 ssh2
Nov 15 08:03:55 backup sshd[5126]: pam_unix(sshd:session): session opened for user root by (uid=0)
Nov 15 08:03:55 backup sshd[5126]: Received disconnect from xxx.xxx.xxx.xxx: 11: disconnected by user
Dies zeigt wohl die beiden geglückten Transfers. Wieso werden die allerdings erst um 8:03h ausgeführt?
Der erste missglückte Transfer wurde um 6:00h gestarten. Hat der das ganze 2h lang blockiert? Ist da ein irgendein Timeout von 2h?

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: rsync über ssh klappt erst bei zweitem Versuch

Beitrag von rendegast » 15.11.2010 18:40:26

Wenn Du den ersten Versuch als dummy ansiehst,
könntest Du vor die drei wirklichen Aufrufe einen richtigen dummy setzen, der den Rechner aufweckt.
Vielleicht mit einem timeout ala "ssh -o ConnectTimeout 200",
respektive gekillt nach 3Minuten?
ConnectTimeout
Specifies the timeout (in seconds) used when connecting to the ssh server, instead of using the default system TCP timeout. This value is used only when the target is down or really unreachable, not when it refuses the connection.
Da die eigentliche Meldung ja von rsync kommt, auch dieses hat timeout:

Code: Alles auswählen

     --timeout=SECONDS       set I/O timeout in seconds
     --contimeout=SECONDS    set daemon connection timeout in seconds
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

wappo
Beiträge: 110
Registriert: 11.01.2007 14:58:24

Re: rsync über ssh klappt erst bei zweitem Versuch

Beitrag von wappo » 16.11.2010 00:14:08

Vielen Dank für die Hilfe!

Ich werde mal folgendes ausprobieren: Ein Dry-run mit timeout nach 2 min, der zur Not nach 3 min gekillt wird vor den eigentlichen 3 Transfers.

Code: Alles auswählen

( rsync --numeric-ids --delete --stats --dry-run --timeout=120 -ahe "ssh -i /root/backup/rsync-key" /foo/ $backup_server:/mnt/backup/foo/  ) & sleep 180 ; kill $!
Bin gespannt, ob es klappt. Ich frage mich nach wie vor, ob es ein Problem ist, dass häufiger auftritt..

Antworten