Назад | Перейти на главную страницу

Контроль использования полосы пропускания rsync в процентах от доступной полосы пропускания в пользовательском пространстве?

Я часто использую rsync на ноутбуке на базе OSX для синхронизации некоторых файлов с него на сервер Linux. Ноутбук может быть подключен к разным сетям с разной пропускной способностью (офисный Ethernet, Wi-Fi, 3G и т. Д.). --bwlimit=Kbps Опция позволяет управлять полосой пропускания, используемой в пользовательском пространстве, путем указания жесткого (ну, примерно жесткого) ограничения для самого rsync. Однако он выражается в Кбит / с, что затрудняет использование в автоматизированных сценариях, которые используются в различных сетях, например в тех, к которым подключается ноутбук.

Есть ли способ указать rsync использовать процент от пропускной способности, а не предел, выраженный в K? В качестве альтернативы, могу ли я легко вычислить это значение динамически или обернуть rsync скриптом для этого?

Мне бы хотелось, чтобы решение работало на OS X или на Linux, в идеале на обоих.

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

Предполагая, что у вас есть Python, вы можете изменить speedtest-cli чтобы изменить его распечатанные результаты, или импортируйте его как модуль в свою программу и используйте возвращаемые значения его downloadSpeed() функция. Как есть, можно получить:

$ ./speedtest-cli --simple
Ping: 375.668 ms
Download: 66.36 Mbit/s
Upload: 41.05 Mbit/s