Я хотел бы получить доступ к информации о прогрессе от lftp. В настоящее время я использую curl следующим образом:
curl http://example.com/file -o file -L 2> download.log
Это записывает информацию о прогрессе curl в файл download.log, который я могу отслеживать, чтобы получить прогресс в реальном времени.
Но тот же подход не работает с lftp, ни с stdout, ни с stderr. Я заканчиваю с пустым файлом download.log, пока передача не завершена.
lftp -e 'get http://example.com/file;quit' 2> download.log
lftp -e 'get http://example.com/file;quit' 1> download.log
Когда я не перенаправляю вывод, я вижу прогресс на экране. Когда я делаю перенаправление вывода, я перестаю видеть прогресс на экране, но в download.log ничего не отображается. После завершения передачи файла я вижу конечный результат, как этот, но ничего раньше:
97618627 bytes transferred in 104 seconds (913.1K/s)
Делает ли lftp что-то необычное с выводом - печать на экран без печати на stdout / stderr? Есть ли другие способы захвата вывода экрана, кроме перенаправления stdout / stderr?
Посмотрите настройки по умолчанию для «log: file / xfer», введя
set
команду в lftp.Возможный вывод:
Вы можете изменить это по-разному, конечно.
источник
Проверьте переменные домена xfer :
поместит информацию о передаче журнала в ~ / .lftp / Transfer_log
Не уверен, что вы можете изменить место назначения файла журнала, тем не менее
источник
попробуйте это, чтобы получить информацию о ходе выполнения: lftp sftp: // $ SFTPUSER: $ SFTPPASS @ $ SFTPHOST -e "cd $ DIRECTORY; mget $ SFTPFILE; bye"> $ SFTPLOG 2> & 1
источник