Tach auch,
ich arbeite in einem Unternehmen, das für Kunden Dateien konvertiert, beispielsweise von CSV nacht XML, iDoc nach dBase, sowieso nach Excel oder irgendwas nach irgendwas anderem.
Die Dateien erhalten wir zum großen Teil per scp und wir versenden auch einen großen Teil damit. Weil das alles automatisch gehen soll, haben wir einfache RSA-Keys zur Authentifizierung eingesetzt, damit der scp-Prozess nicht ständig nach der Eingabe eines Passwortes fragt.
So weit, so gut. Nun klagt einer unserer Kunden darüber, das er hin- und wieder unvollständige Dateien bekommt. Zur Fehlereingrenzung senden wir die Dateien nun zweimal an ihn, und siehe da: wenn eine Datei fehlerhaft übertragen wird, dann wird auch die Kopie fehlerhaft übertragen, wobei beide übertragenen Dateien unterschiedliche Größe auf dem Zielsystem haben - sie sind also unterschiedlich kaputt.
Das es sich um einfache XML-Dateien im Textformat handelt, kann man mit dem Editor einfach reinschauen, und tatsächlich sind beide Dateien an unterschiedlichen Stellen abgeschnitten.
Nach dem Transfer der beiden Dateien verschieben wir die gesendete Datei auf unserer Seite in ein Backupverzeichnis, und diese Datei ist jedesmal völlig in Ordnung.
Zum Versenden verwenden wir eine Sun mit Solaris 7 und einen altem ssh-Client (SSH Version 1.2.27 [sparc-sun-solaris2.7], protocol version 1.5.), der nur Protocol 1 beherscht. Empfangen wird mit OpenSSH, Version unbekannt, aber sicherlich nicht älter als ein Jahr auf einer Linux-Maschine.
Nun endlich meine Fragen: Ist es überhaupt möglich, das der ssh-Prozess eine Datei nur halb übertragen kann? IMHO geht das nicht, weil doch die Integrität der übertragenen Datei geprüft werden muss (man in the middle). Eigentlich müsste der Prozess in diesem Fall eine Fehlermeldung zurückgeben.
Und: hat jemand ein solches Verhalten bereits beobachtet? Ich muss hier halt alle möglichen Fehlerquellen ausschließen, und brauche etwas Beratung von euch. Wilde Spekulationen sind ebenfalls willkommen
Danke,
Stefan