LINUX.ORG.RU
ФорумAdmin

Flow control для запущенного скрипта

 , , , ,


0

3

Есть скрипт загружающий файлы на некий сервер и использующий pv в роли шейпера(так как сервер не всегда может переварить поток данных):

for file in files;do pv -L 1000k $file | ncat -w 1 127.0.0.1 1234;done

Есть ли способ менять налету скорость(параметр pv)?
Ну или может есть принципиально другой более правильный и гибкий способ организации flow control?

★★★★★

Правильного способа не знаю, предложу уродливый:

Заменить pv -L 1000k $file на

cat $file | while pv -L $(<speedlimit.txt); do :; done

Писать нужную скорость в файл и аккуратно килять pv. Только в таком виде оно работать не будет, надо в условии цикла различать выход по EOF и по SIGTERM, но поля этого поста слишком узки, чтобы записать этот код.

legolegs ★★★★★ ()
Ответ на: комментарий от anonymous

Кстати. Залез в man pv

       -R PID, --remote PID
              If  PID  is  an instance of pv that is already running, -R PID will
              cause that instance to  act  as  though  it  had  been  given  this
              instance's  command  line  instead.   For example, if pv -L 123K is
              running with process ID 9876, then running pv -R 9876 -L 321K  will
              cause  it  to start using a rate limit of 321KiB instead of 123KiB.
              Note that some options cannot be changed while running, such as -c,
              -l, -f, -D, -E, and -S.
anonymous ()