Hallo,
ich mache hier mit folgendem rsync-Befehl ein Backup auf einen entfernten Rechner:
rsync --timeout=60 -e 'ssh -i ~/.ssh/backup_key' -avz /local_dir backup:/backup_dir >> /var/log/rsync_log
Davon laufen mehrere Befehle in einem Skript ab, verschiedene Verzeichnisse aber immer derselbe Zielrechner. Der Timeout war nötig, da mir erstens das Skript und später der Rechner irgendwann stehen bleibt.
Fehlermeldungen tauchen nirgendwo unter /var/log/* auf. In der StatusMail des cronjobs: io timeout after 60 second - exiting Received signal 10.
Der Fehler taucht nicht bei bestimmtem Dateien auf, da bei erneutem Aufruf die Liste weiter abgearbeitet wird und manchmal auch fehlerfrei durchläuft. Innerhalb des Skriptes hängt es aber wieder.
Die Dateien werden auch nicht von anderen Prozessen blockiert, da z.B. das rsync des mysql-Verzeichnisses erst (bei angehaltenem mysqld) lokal synchronisiert und diese Kopie dann mit dem entfernten Rechner. Lokal funktioniert es, remote gibt ein timeout.
An der Datenmenge allein kann's nicht liegen, da einerseits bei Verzeichnisgröße 15 MB / übertragene Datenmenge 100 kB ein timeout kommt, andererseits bei 9 GB / 2 MB alles funktionierte. Der Abbruch erfolgt auch nicht nach einer bestimmten Zeit oder Anzahl Dateien.
Testweise hab ich schon die Netzwerkkarte des Backuprechners getauscht, selbst ein anderer Chipsatz/anderes Kernelmodul waren hier erfolglos.
Wo kann das Problem stecken?
lokaler Rechner: SuSE Linux 7.0 (i386) SSH Version 1.2.27 [i386-suse-linux], protocol version 1.5. Standard version. Does not use RSAREF. rsync version 2.3.2 protocol version 21
Backup-Rechner: SuSE Linux 7.3 (i386) OpenSSH_2.9p2, SSH protocols 1.5/2.0, OpenSSL 0x0090602f rsync version 2.4.6 protocol version 24
Auf Hilfe hoffend,
Rico