Come posso catturare l'output da LFTP? (Uscita non scritta su STDOUT o STDERR?)


9

Vorrei avere accesso alle informazioni sullo stato di avanzamento da lftp. Attualmente sto usando il ricciolo in questo modo:

curl http://example.com/file -o file -L 2> download.log

Questo scrive le informazioni sull'avanzamento di curl nel file download.log, che posso seguire per ottenere progressi in tempo reale.

Ma lo stesso approccio non funziona con lftp, né con stdout né con stderr. Finisco con un file download.log vuoto, fino al completamento del trasferimento.

lftp -e 'get http://example.com/file;quit' 2> download.log
lftp -e 'get http://example.com/file;quit' 1> download.log

Quando non reindirizzo l'output, vedo i progressi sullo schermo. Quando eseguo il reindirizzamento dell'output, smetto di vedere i progressi sullo schermo, ma in download.log non viene visualizzato nulla. Dopo che il trasferimento del file è completo, vedo il risultato finale, in questo modo - ma niente prima:

97618627 bytes transferred in 104 seconds (913.1K/s)

Lftp sta facendo qualcosa di insolito con il suo output: stampare su schermo senza stampare su stdout / stderr? Esistono altri modi per acquisire l'output dello schermo oltre a reindirizzare stdout / stderr?

Risposte:



3

Per l'impostazione predefinita "log: file / xfer", immettere il setcomando in lftp.

Uscita possibile:

set log:file/xfer /home/USERNAME/.local/share/lftp/transfer_log

Puoi cambiarlo in diversi modi fuori rotta.

lftp -c 'open -e "set log:file/xfer /home/USERNAME/myown.log; mget *.csv; bye" -u uname,psswd 172.16.100.101' >> $log

2

Controlla le variabili del dominio xfer :

imposta xfer: registro 1

imposta xfer: eta-period 5 # ogni 5 secondi

imposta xfer: tariffa media 20 # periodo di frequenza

inserirà le informazioni di trasferimento del registro in ~ / .lftp / transfer_log

Non sono sicuro di poter comunque modificare la destinazione del file di registro


dalla manpage: xfer: log-file (percorso del file) il file a cui trasferire i trasferimenti. L'impostazione predefinita è ~ / .local / share / lftp / transfer_log o ~ / .lftp / transfer_log.
benba,

Indead! Questa nuova impostazione xfer-log è stata aggiunta nella versione 4.2.0 da Timur Sufiev (2011-03-03)
giovedì

-1

prova a catturare informazioni sullo stato di avanzamento: lftp sftp: // $ SFTPUSER: $ SFTPPASS @ $ SFTPHOST -e "cd $ DIRECTORY; mget $ SFTPFILE; ciao"> $ SFTPLOG 2> & 1

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.