wput: Fehlermeldung nach Übertragung einer großen Datei

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
ropri8
Beiträge: 80
Registriert: 22.02.2008 08:37:56

wput: Fehlermeldung nach Übertragung einer großen Datei

Beitrag von ropri8 » 09.02.2018 08:07:05

Hallo!
Ich habe einen kleinen Batch zur Datensicherung geschrieben, an dessen Ende eine .tar-Datei per wput auf einen Server kopiert werden soll. Diese Datei ist relativ groß (im derzeitigen Fall ~360MB); wput arbeitet bis zum Schluß recht ordentlich, nur dann, bei 99% kommt eine Fehlermeldung:

Code: Alles auswählen

Error: recv() timed out. No data received
Receive-Warning: read() timed out. Read '' so far.
07:55:07 (Sicherung_20180208.tar) - 82.73K7s [....]
Waiting 10 seconds ... Error: recv() timed out. No data received
Receive-Warning: read() timed out. Read '' so far.
FINISHED -- 07:55:48--
Transfered 368,496,640 Bytes in 1 file at 81.96K/s
Transmission of 1 file faled
Bei kleineren Dateien (probiert habe ich es bis ~3,5MB) gibt es keinerlei Fehlermeldung. Wo kann da das Problem sein?
Ach ja noch zur Info: trotz Fehlermeldung wird die große Datei vollständig übertragen.

Gruß,
Roman

NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: wput: Fehlermeldung nach Übertragung einer großen Datei

Beitrag von NAB » 10.02.2018 05:05:48

ropri8 hat geschrieben: ↑ zum Beitrag ↑
09.02.2018 08:07:05

Code: Alles auswählen

Transmission of 1 file faled
Das hast du abgetippt, oder?

Ich kenne wput nicht, aber bei genauerer Betrachtung sind das nur Warnungen. Über Timeouts. Von Timeouts könnte der Prozess sich erholen (indem er noch mal anfragt).

Das wirklich irritierende ist dann das "Transmission of 1 file faled", was nach deiner Aussage nicht stimmt.

Eventuell ballerst du deinen Upload derartig zu, dass da ein Handshake nicht mehr klappt. Du könntest es mal mit der Option:
−−limit−rate=75K
versuchen ... während du auf eine kompetentere Antwort wartest :wink:
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

ropri8
Beiträge: 80
Registriert: 22.02.2008 08:37:56

Re: wput: Fehlermeldung nach Übertragung einer großen Datei

Beitrag von ropri8 » 10.02.2018 16:05:54

Hallo!
Danke für deinen Beitrag. Ich hab's jetzt probiert mit --limit-rate=50K. Hat aber leider nichts gebracht - wieder die gleiche Fehlermeldung ...

Ach und übrigens, ja - ich hab' die Meldung abgeschrieben :-)
Ich hatte zwar schon einen screenshot gemacht, aber ich habe nichts gefunden, wo man hier direkt beim Beitrag ein Bild hochladen könnte.
Hier nochmals die Meldung vom heutigen Versuch - ist jetzt nicht abgeschrieben, sondern eine Kopie :-)

Code: Alles auswählen

Length: 373,626,880
99% [=========================================================================================================================================>] 373,619,712      50.25K/s ETA    00s
Error: recv() timed out. No data received
Receive-Warning: read() timed out. Read '' so far.
15:55:54 (dg__von_20171018-080008__bis_20180210-135209.tar) - `49.79K/s' [373626880]

Waiting 10 seconds... FINISHED --15:56:24--
Transfered 373,626,880 bytes in 1 file at 49.60K/s
Transmission of 1 file failed.

DeletedUserReAsG

Re: wput: Fehlermeldung nach Übertragung einer großen Datei

Beitrag von DeletedUserReAsG » 10.02.2018 16:10:21

Ich würde an dieser Stelle mal schauen, ob die Datei nicht doch vollständig da ist. Also mal einen Hash der lokalen und entfernten Datei erstellen. Die Datei ist 373,626,880 Byte groß, und soviele wurden auch übertragen.

Desweiteren würde ich den Fehler beim Server suchen, den du ja leider nicht benennst. Insbesondere dessen Logs mögen nähere Informationen zum Problem beinhalten.
ich habe nichts gefunden, wo man hier direkt beim Beitrag ein Bild hochladen könnte.
Gut so.

NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: wput: Fehlermeldung nach Übertragung einer großen Datei

Beitrag von NAB » 10.02.2018 18:16:39

Du findest hier:
https://sourceforge.net/p/wput/bugs/37/
einen uralten(!) Bugreport, der die gleiche Fehlermeldung produziert. Der gravierende Unterschied ist aber, dass wput dort abstürzt. Interessant ist vielleicht dieses Fragment:
My current explanation for what goes wrong, is that wput uses a first session to connect to the ftp server, negociates and checks for the files to transfer over that session, then initiates the transfer in PASV mode in another session, but since that transfer is very long (more than an hour), looses the control session it needs when the transfer is finished. Thus the recv() is empty error after the end of the transfer.
Das würde bedeuten, dass das Problem am anderen Ende sitzt, wie "niemand" sagt.
wput macht eine "first connection" auf, überträgt die Datei auf einer "second connection", und das dauert so lange, dass der Server die "first connection" wegen Inaktivität wieder schließt. Dann will wput auf der "first connection" nachgucken, ob die Datei angekommen ist ... und der Server antwortet nicht.
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

dufty2
Beiträge: 1709
Registriert: 22.12.2013 16:41:16

Re: wput: Fehlermeldung nach Übertragung einer großen Datei

Beitrag von dufty2 » 11.02.2018 06:25:22

Das ist ein FTP-problem und nicht speziell wput.
Im Gegensatz zu z. B. SSH (tcp port 22) benötigt FTP zwei (!) ports:

Code: Alles auswählen

$ grep ftp /etc/services 
ftp-data	20/tcp
ftp		21/tcp
<snip>
Das Problem hatte ich auch schon mit dem "stink-normaler" ftp-client.
Mehrere hundert MByte-Datei über das Internet kopiert (was etliche Minuten braucht), hat auch alles geklappt, wollte am Schluß noch ein

Code: Alles auswählen

ftp> dir
absetzen, ob remote auch alles angekommen ist
=> ging nicht mehr, Server hat die session (port 21) bereits dicht gemacht :(
Nochmal einloggen müssen und dann nachgeschaut.

Manche FTP-clients wie filezilla beherrschen "keepalives", beim klassischen ftp-client könnte evtl. ein

Code: Alles auswählen

ftp> idle 3600
helfen.
Evtl. am Server selbst den idle-timer hochsetzen
oder halt ein richtiges Protokol (hint: ssh) verwenden ;)

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: wput: Fehlermeldung nach Übertragung einer großen Datei

Beitrag von scientific » 12.02.2018 07:13:18

dufty2 hat geschrieben:Das ist ein FTP-problem und nicht speziell wput.
Im Gegensatz zu z. B. SSH (tcp port 22) benötigt FTP zwei (!) ports:

Code: Alles auswählen

$ grep ftp /etc/services 
ftp-data	20/tcp
ftp		21/tcp
<snip>
Das Problem hatte ich auch schon mit dem "stink-normaler" ftp-client.
Mehrere hundert MByte-Datei über das Internet kopiert (was etliche Minuten braucht), hat auch alles geklappt, wollte am Schluß noch ein

Code: Alles auswählen

ftp> dir
absetzen, ob remote auch alles angekommen ist
=> ging nicht mehr, Server hat die session (port 21) bereits dicht gemacht :(
Nochmal einloggen müssen und dann nachgeschaut.

Manche FTP-clients wie filezilla beherrschen "keepalives", beim klassischen ftp-client könnte evtl. ein

Code: Alles auswählen

ftp> idle 3600
helfen.
Evtl. am Server selbst den idle-timer hochsetzen
oder halt ein richtiges Protokol (hint: ssh) verwenden ;)
Curlftpfs kann leider auch keine keepalives.
Mein Webhoster bietet leider nur ftp an. Und ich mounte den Webspace mit curlftpfs. Das bringt regelmäßig die Verbindung und damit das System zum einfrieren...

Hab mir mit einer Keepalive-Unit in systemd beholfen
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

ropri8
Beiträge: 80
Registriert: 22.02.2008 08:37:56

Re: wput: Fehlermeldung nach Übertragung einer großen Datei

Beitrag von ropri8 » 12.02.2018 07:55:03

Hallo!
Danke für die Beiträge - schön langsam lichten sich die Nebel etwas ....
Hab' jetzt mal den Rat von "dufty2" mit normalem Befehl ftp und idle befolgt - leider folgende Meldung:

Code: Alles auswählen

Remote system type is UNIX.
Using binary mode to transfer files.
ftp> idle 3600
500 'SITE IDLE' not understood
ftp>
Gruß,
Roman

Antworten