Comment capturer la sortie de LFTP? (Sortie non écrite dans STDOUT ou STDERR?)


9

J'aimerais avoir accès aux informations de progression de lftp. Actuellement, j'utilise curl comme ceci:

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

Cela écrit les informations de progression de curl dans le fichier download.log, que je peux suivre pour obtenir une progression en temps réel.

Mais la même approche ne fonctionne pas avec lftp, que ce soit avec stdout ou stderr. Je me retrouve avec un fichier download.log vide, jusqu'à ce que le transfert soit terminé.

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

Lorsque je ne redirige pas la sortie, je vois des progrès à l'écran. Lorsque je redirige la sortie, j'arrête de voir la progression à l'écran, mais rien n'apparaît dans download.log. Une fois le transfert de fichiers terminé, je vois le résultat final, comme ceci - mais rien avant:

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

Est-ce que lftp fait quelque chose d'inhabituel avec sa sortie - imprimer sur écran sans imprimer sur stdout / stderr? Existe-t-il d'autres moyens de capturer la sortie d'écran que de rediriger stdout / stderr?

Réponses:



3

Voir le paramètre par défaut "log: file / xfer" en entrant la setcommande dans lftp.

Sortie possible:

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

Vous pouvez changer cela de différentes manières.

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

2

Vérifiez les variables du domaine xfer :

set xfer: log 1

set xfer: eta-period 5 # toutes les 5 secondes

set xfer: rate-period 20 # taux moyen

placera les informations de transfert de journal dans ~ / .lftp / transfer_log

Vous n'êtes pas sûr de pouvoir néanmoins modifier la destination du fichier journal


à partir de la page de manuel: xfer: log-file (chemin d'accès au fichier) vers lequel transférer les transferts. La valeur par défaut est ~ / .local / share / lftp / transfer_log ou ~ / .lftp / transfer_log.
benba

Indead! Ce nouveau paramètre xfer-log a été ajouté dans la version 4.2.0 par Timur Sufiev (2011-03-03)
juj

-1

essayez de capturer les informations de progression: lftp sftp: // $ SFTPUSER: $ SFTPPASS @ $ SFTPHOST -e "cd $ DIRECTORY; mget $ SFTPFILE; bye"> $ SFTPLOG 2> & 1

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.