Ich möchte Zugriff auf Fortschrittsinformationen von lftp erhalten. Derzeit verwende ich Curl wie folgt:
curl http://example.com/file -o file -L 2> download.log
Dadurch werden die Fortschrittsinformationen von curl in die Datei download.log geschrieben, die ich verfolgen kann, um den Fortschritt in Echtzeit zu erhalten.
Der gleiche Ansatz funktioniert jedoch nicht mit lftp, weder mit stdout noch mit stderr. Am Ende habe ich eine leere Datei download.log, bis die Übertragung abgeschlossen ist.
lftp -e 'get http://example.com/file;quit' 2> download.log
lftp -e 'get http://example.com/file;quit' 1> download.log
Wenn ich die Ausgabe nicht umleiten kann, wird der Fortschritt auf dem Bildschirm angezeigt. Wenn ich die Ausgabe umleiten möchte, wird der Fortschritt auf dem Bildschirm nicht mehr angezeigt, aber in download.log wird nichts angezeigt. Nachdem die Dateiübertragung abgeschlossen ist, sehe ich das Endergebnis wie folgt - aber nichts vorher:
97618627 bytes transferred in 104 seconds (913.1K/s)
Tut lftp mit seiner Ausgabe etwas Ungewöhnliches - Drucken auf dem Bildschirm ohne Drucken auf stdout / stderr? Gibt es andere Möglichkeiten zur Erfassung der Bildschirmausgabe als die Umleitung von stdout / stderr?
Die Standardeinstellung "log: file / xfer" finden Sie unter Eingabe des
set
Befehls in lftp.Mögliche Ausgabe:
Sie können dies natürlich auf verschiedene Arten ändern.
quelle
Überprüfen Sie die xfer- Domänenvariablen:
legt Protokollübertragungsinformationen in ~ / .lftp / transfer_log ab
Sie sind sich nicht sicher, ob Sie das Ziel der Protokolldatei trotzdem ändern können
quelle
Versuchen Sie, den Fortschritt zu erfassen: lftp sftp: // $ SFTPUSER: $ SFTPPASS @ $ SFTPHOST -e "cd $ DIRECTORY; mget $ SFTPFILE; bye"> $ SFTPLOG 2> & 1
quelle