Trickle FTP соединение

У меня есть скрипт для резервного копирования моих данных. Последняя строка:

echo "$FTPConnectstring
$FTPCommands
bye" | ftp -ivn

Это прекрасно работает, но я бы хотел, чтобы это можно было "обуздать" (то есть ограничить использование полосы пропускания загрузки). Я пробовал много командных строк, таких как эти:

echo "$FTPConnectstring
$FTPCommands
bye" | ftp -ivn | trickle -s -u 4096

но передача ftp, кажется, выполняется без ограничения использования BW, я также попробовал что-то подобное

FinalCommand=$(echo -e "$FTPConnectstring\n$FTPCommands\nbye")
trickle -s -u 4096 ftp -ivn ${FinalCommand}

но этот не соединяет ftp правильно...

Любая помощь приветствуется!

1 ответ

Решение

В вашей первой попытке вы только trickle стандартный вывод из ftp (в зависимости от реализации, возможно, просто сообщения о прогрессе, если даже это). Во второй попытке у вас есть синтаксическая ошибка; аргумент ftp должно быть именем хоста, а не последовательностью команд. Попробуйте это вместо:

echo -e "$FTPConnectstring\n$FTPCommands\nbye" |
trickle -s -u 4096 ftp -ivn

Если ftp двоичный файл статически связан, trickle не может переопределить его внутренности обработки сокетов; но в этом случае вы, вероятно, можете переключиться на другой FTP-клиент, такой как ncftp который также должен вести себя лучше с помощью сценариев.

Другие вопросы по тегам