Como posso capturar a saída do LFTP? (Saída não escrita para STDOUT ou STDERR?)

7

Eu gostaria de ter acesso a informações sobre o progresso do lftp. Atualmente, estou usando o curl assim:

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

Isso grava as informações de progresso do curl no arquivo download.log, que eu posso seguir para obter progresso em tempo real.

Mas a mesma abordagem não funciona com lftp, seja com stdout ou stderr. Acabo com um arquivo download.log vazio, até que a transferência esteja completa.

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

Quando não redireciono a saída, vejo progresso na tela. Quando eu redireciono a saída, paro de ver o progresso na tela, mas nada aparece no download.log. Após a conclusão da transferência de arquivos, vejo o resultado final, como este - mas nada antes:

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

O lftp está fazendo algo incomum com sua saída - imprimir na tela sem imprimir em stdout / stderr? Existem outras maneiras de capturar saída de tela do que redirecionar stdout / stderr?

    
por jondahl 07.05.2010 / 19:24

4 respostas

3

Parece-me que está armazenando em buffer sua saída. Você pode tentar o unbuffer esperar script ( página man ).

    
por 07.05.2010 / 20:20
2

Verifique as variáveis de domínio xfer :

set xfer:log 1

set xfer:eta-period 5 # every 5 seconds

set xfer:rate-period 20 # average rate

colocará informações de transferência de registros em ~ / .lftp / transfer_log

Não tenho certeza se você pode alterar o destino do arquivo de log, no entanto

    
por 31.07.2010 / 01:56
0

Veja a configuração padrão "log: file / xfer" inserindo o comando set em lftp.

Saída possível:

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

Você pode mudar isso de formas diferentes, claro.

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

tente thisto capturar informações de progresso: lftp sftp: // $ SFTPUSER: $ SFTPPASS @ $ SFTPHOST -e "cd $ Directory; mget $ SFTPFILE; bye" > $ SFTPLOG 2 > & 1

    
por 29.07.2015 / 02:55