
Установка speedtest-cli для проверки скорости интернета в Unix/Linux
Утилита speedtest-cli — это скрипт, который написан на Python. Он измеряет скорость интернет-трафика в двух направлениях (аплоад и даунлоад) используя инфраструктуру speedtest.net для измерения скорости. Для данной программы необходимо установить Python 2.4-3.4 или выше.
Установка speedtest-cli для проверки скорости интернета в Unix/Linux
Есть несколько способов установить speedtest-cli:
- Первый способ — предполагает использование пакета python-pip.
- Второй способ — загрузить сценарий Python, сделать его исполняемым и запустить.
- Третий способ — использовать пакетный менеджер.
- Четвертый способ — скачать speedtest-cli используя Github.
Все команды я буду выполнять от суперпользователя, по этому — я залогинюсь под ним:
$ sudo su
Вводим пароль от пользователя root и получаем его права.
-=1=- Установка speedtest-cli используя pythin-pip
И так, для начала выполняем установку python-pip, если не знаете как это сделать — вот статья:
Установка pip/setuptools/wheel в Unix/Linux
И, выполняем установку speedtest-cli пакета:
# pip install speedtest-cli
Для обновления speedtest-cli, используйте:
# pip install speedtest-cli --upgrade
-=2=- Установка speedtest-cli используя Python скрипт
Сначала загрузите скрипт python из github с помощью команды wget, распакуйте загруженный файл (master.zip):
$ cd /usr/local/src && wget https://github.com/sivel/speedtest-cli/archive/master.zip && unzip master.zip
После извлечения архива, перейдите в speedtest-cli-master папку и сделайте исполняемый файл:
$ cd speedtest-cli-master/ $ chmod 755 speedtest_cli.py
Затем переместите исполняемый файл в /usr/bin директорию:
$ sudo mv speedtest_cli.py /usr/bin/
Вот еще один вариант:
# cd /usr/local/src && wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py # chmod +x speedtest-cli
Или:
# cd /usr/local/src && curl -Lo speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py # chmod +x speedtest-cli
-=3=- Установка speedtest-cli используя пакетный менеджер.
Если вы используйте Debian/Ubuntu ОС, выполните:
# apt install speedtest-cli
Если вы используйте CentOS/Fedora/RHEL ОС, выполните:
# yum install speedtest-cli
Если вы используйте Mac OS X, выполните:
Для начала, устанавливаем HomeBrew:
Установка HomeBrew на Mac OS X
И выполняем установку:
$ brew install speedtest_cli
-=4=- Установка speedtest-cli используя Github
Используем:
$ pip install git+https://github.com/sivel/speedtest-cli.git
Или
$ git clone https://github.com/sivel/speedtest-cli.git
И выполняем установку:
# python speedtest-cli/setup.py install
Или можно запустить следующую команду:
$ curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -
Использование speedtest-cli для проверки скорости интернета в Unix/Linux
В зависимости каким методом установки вы воспользовались, будет зависеть запуск speedtest-cli утилиты:
- speedtest-cli
- speedtest_cli.py
1. Чтобы проверить скорость загрузки и выгрузки своего интернет-соединения, запустите команду speedtest-cli без каких-либо аргументов, как показано ниже:
$ speedtest_cli.py
2. Для вывода информации в байтах (вместо битов), используйте:
$ speedtest_cli.py --bytes
3. Поделитесь своей пропускной способностью с друзьями или семьей. Вам предоставляется ссылка по завершению проверки:
# speedtest-cli --share
Конечно, вы можете комбинировать оба варианта:
$ speedtest-cli --share --bytes
4. Вам не нужна дополнительная информация (кроме Ping, Download и upload), то для этого используйте:
$ speedtest_cli.py --simple
5. Посмотреть сервера которые использует speedtest.net на основе физического расстояния ( км ):
$ speedtest_cli.py --list
6. На последнем этапе сформирован огромный список серверов, отсортированных по расстоянию. Как получить желаемый результат? Скажем, я хочу видеть только сервер speedtest.net, расположенный в Мумбаи (Индия):
$ speedtest-cli --list | grep -i Kiev
7. Проверьте скорость подключения к определенному серверу. Используйте идентификатор сервера, сгенерированный в примере 5 и в примере 6:
$ speedtest_cli.py --server [server_ID]
Как указать идентификатор сервера для тестирования?
Во-первых, возьмите список серверов, введите:
$ cd /usr/local/src && wget http://www.speedtest.net/speedtest-servers.php
Чтобы просмотреть идентификатор сервера, введите:
$ more speedtest-servers.php
Чтобы выполнить поиск идентификатора сервера, введите:
$ grep 'name' speedtest-servers.php $ grep 'country' speedtest-servers.php
Рассмотрим пример:
$ grep 'Kiev' speedtest-servers.php
Вывод:
<server url="http://speedtest01.life.com.ua/speedtest/upload.php" lat="50.4500" lon="30.5233" name="Kiev" country="Ukraine" cc="UA" sponsor="lifecell" id="3230" url2="http://speedtest02.life.com.ua/speedtest/upload.php" host="speedtest01.life.com.ua:8080" /> <server url="http://speedtest.volia.net/speedtest/upload.php" lat="50.4500" lon="30.5233" name="Kiev" country="Ukraine" cc="UA" sponsor="Volia" id="2518" url2="http://speedtest2.volia.com/speedtest/upload.php" host="speedtest.volia.net:8080" /> <server url="http://speedtest.cosmonova.net/speedtest/upload.php" lat="50.4500" lon="30.5233" name="Kiev" country="Ukraine" cc="UA" sponsor="Cosmonova" id="5447" url2="http://speedtest.cosmonova.net.ua/speedtest/upload.php" host="speedtest.cosmonova.net:8080" /> <server url="http://st1.utelecom.com.ua/speedtest/upload.php" lat="50.4500" lon="30.5233" name="Kiev" country="Ukraine" cc="UA" sponsor="PROSTO" id="6088" url2="http://st12.utelecom.com.ua/speedtest/upload.php" host="st1.utelecom.com.ua:8080" /> <server url="http://speedtest.lanet.ua/speedtest/upload.php" lat="50.4500" lon="30.5233" name="Kiev" country="Ukraine" cc="UA" sponsor="Lanet Network" id="5477" url2="http://speedtest.la.net.ua/speedtest/upload.php" host="speedtest.lanet.ua:8080" /> <server url="http://kiev.speedtest.triolan.com.ua/speedtest/upload.php" lat="50.4500" lon="30.5233" name="Kiev" country="Ukraine" cc="UA" sponsor="Triolan" id="6010" url2="http://kiev2.speedtest.triolan.com.ua/speedtest/upload.php" host="kiev.speedtest.triolan.com.ua:8080" /> <server url="http://sp1.ip.net.ua/speedtest/upload.php" lat="50.4500" lon="30.5233" name="Kiev" country="Ukraine" cc="UA" sponsor="Ipnet" id="6312" url2="http://sp2.ip.net.ua/speedtest/upload.php" host="sp1.ip.net.ua:8080" /> <server url="http://www.speedtest1.kyivstar.ua/speedtest/upload.php" lat="50.4500" lon="30.5233" name="Kiev" country="Ukraine" cc="UA" sponsor="Kyivstar" id="6446" url2="http://www.speedtest2.kyivstar.ua/speedtest/upload.php" host="www.speedtest.kyivstar.ua:8080" /> <server url="http://speedtest1.under.net.ua/speedtest/upload.php" lat="50.4500" lon="30.5233" name="Kiev" country="Ukraine" cc="UA" sponsor="UnderNet" id="6195" url2="http://speedtest2.under.net.ua/speedtest/upload.php" host="speedtest1.under.net.ua:8080" /> <server url="http://xmon.x.ua/speedtest_plugin/speedtest/upload.php" lat="50.4500" lon="30.5233" name="Kiev" country="Ukraine" cc="UA" sponsor="x.ua - CDN" id="5072" url2="http://xmon1.x.ua/speedtest_plugin/speedtest/upload.php" host="xmon.x.ua:8080" /> <server url="http://sp1.dataline.ua/speedtest/upload.php" lat="50.4500" lon="30.5233" name="Kiev" country="Ukraine" cc="UA" sponsor="Dataline" id="8478" url2="http://sp2.dataline.ua/speedtest/upload.php" host="speedtest.dataline.ua:8080" /> <server url="http://st.uniteddc.net.ua/speedtest/upload.php" lat="50.4500" lon="30.5233" name="Kiev" country="Ukraine" cc="UA" sponsor="United Network Of Ukraine" id="7743" url2="http://st.uniteddc.net/speedtest/upload.php" host="st.uniteddc.net.ua:8080" /> <server url="http://sp1.infocom.ua/speedtest/upload.php" lat="50.4500" lon="30.5233" name="Kiev" country="Ukraine" cc="UA" sponsor="Infocom" id="9264" url2="http://sp2.infocom.ua/speedtest/upload.php" host="sp1.infocom.ua:8080" /> <server url="http://kyiv.speedtest.vegatele.com/speedtest/upload.php" lat="50.4500" lon="30.5233" name="Kiev" country="Ukraine" cc="UA" sponsor="Vega (Farlep-Invest)" id="6578" url2="http://host-kv.speedtest.vegatele.com/speedtest/upload.php" host="kyiv.speedtest.vegatele.com:8080" /> <server url="http://speedtest.ukrtelecom.ua/speedtest/upload.php" lat="50.4500" lon="30.5233" name="Kiev" country="Ukraine" cc="UA" sponsor="JSC Ukrtelecom" id="831" url2="http://speedtest1.ukrtelecom.ua/speedtest/upload.php" host="speedtest.ukrtelecom.ua:8080" bigsamples="0" /> <server url="http://sp1.o3.ua/upload.php" lat="50.4500" lon="30.5233" name="Kiev" country="Ukraine" cc="UA" sponsor="o3" id="9332" url2="http://sp2.o3.ua/upload.php" host="sp1.o3.ua:8080" />
Так же, можно показать только ID сервера(ов):
$ grep 'Kiev' speedtest-servers.php | egrep -o 'id="[0-9]{4}"'
Примеры результатов:
id="3230" id="2518" id="5447" id="6088" id="5477" id="6010" id="6312" id="6446" id="6195" id="5072" id="8478" id="7743" id="9264" id="6578" id="9332"
Далее используйте идентификатор сервера 6088:
$ speedtest-cli --server 6088
И получаем:
Retrieving speedtest.net configuration... Retrieving speedtest.net server list... Testing from TerraTransit (31.187.70.238)... Hosted by PROSTO (Kiev) [2171.68 km]: 80.402 ms Testing download speed........................................ Download: 181.86 Mbit/s Testing upload speed.................................................. Upload: 43.13 Mbit/s
8. Создание лога с помощью speedtest-cli
Speedtest-cli можно запустить как cronjob, чтобы получить лог-файл с тестом скорости интернет-соединения. Откройте crontab с помощью следующей команды:
$ crontab -e
И добавьте эту строку (я предполагаю, что speedtest_cli.py установлен в /usr/local/bin) в crontab:
30 00 * * * /usr/local/bin/speedtest-cli >> /tmp/speedlog.txt
Сохраните изменения и выйдите из редактора crontab. Это проведет тест скорости в 0:30 каждый день и добавит результат в файл /tmp/speedlog.txt.
9. Чтобы проверить версию утилиты, используйте:
$ speedtest_cli.py --version
10. Для дополнительной информации ( помощи), используйте:
$ speedtest_cli.py --help
На этом у меня все, статья «Установка speedtest-cli для проверки скорости интернета в Unix/Linux» завершена.