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?
Voir le paramètre par défaut "log: file / xfer" en entrant la
set
commande dans lftp.Sortie possible:
Vous pouvez changer cela de différentes manières.
la source
Vérifiez les variables du domaine xfer :
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
la source
essayez de capturer les informations de progression: lftp sftp: // $ SFTPUSER: $ SFTPPASS @ $ SFTPHOST -e "cd $ DIRECTORY; mget $ SFTPFILE; bye"> $ SFTPLOG 2> & 1
la source