Обновление 1

Обновление 1

я прочиталэтотвопрос и ответ на него, но они не отвечают на мой вопрос.

Скрипт оболочки выглядит следующим образом:

let total=$(lftp -f lftp-script-count.txt | wc -l)-2

lftp -f lftp-script.txt |

while read word word2 filename
do
    if [ "$word" = Transferring ]
    then let count=count+1
         let percent=count*100/total
         echo -e "XXX\n$percent\nDownloading $filename\nXXX"
    fi
done |

whiptail --title lftp --gauge progress 10 60 0

Thelftp-скрипт-count.txtСкрипт lftp работает хорошо:

debug 10
set ssl:verify-certificate no
open ...
user ... ...
cd ...
ls -R .

Thelftp-скрипт-count.txtСкрипт lftp работает медленно (но работает точно, хотя мне бы хотелось, чтобы он работал быстрее), и прогресс не доходит до «хлыста»:

set ssl:verify-certificate no
open ...
user ...
cd ...
mirror -P=10 . lftp-works --exclude-glob=node_modules
quit

В результате полоса прогресса отображается, но остается на 0% до конца, хотя он должен был загрузить все 251 МБ. Если я изменяю размер окна терминала, экран whiptail не перерисовывается.

Когда загрузка подходит к концу, окно с индикатором выполнения исчезает.

Мне кажется, что процент, показанный simple, lftp -f lftp-script.txtне является глобальным. Вывод этой команды содержит, помимо процентов, такие вещи:

  • Жду ответа...
  • Получение данных/TLS
  • Установка подключения к данным...
  • Получение данных...

Пример:

Скриншот

Мой вопрос:Как сделать так, чтобы полоса прогресса хорошо отображала ход выполнения?

Есть ли другой CLI FTP-клиент, который показывает ход выполнения и соответствует моим требованиям, как это видно из скриптов lftp, показанных выше?

Спасибо.

Обновление 1

Осталось 2 вопроса:

  1. Было бы здорово, если бы я мог показать ход выполнения операции относительно общего количества файлов, которые будут скопированы, а не всех файлов, доступных для копирования, поскольку я использую --only-newer.
  2. Имея в виду (1), было бы интересно узнать, почему с --only-newerним скорость такая же, как и без него, когда каталог уже полностью загружен. Если бы я мог ускорить процесс, было бы здорово.

Связанный контент