Speedtest CLI - тестирование скорости соединения в командной строке

  • Автор:

speedtest-cli-000.pngСервис проверки скорости интернет-соединения Speedtest by Ookla в представлении не нуждается. Это известный и авторитетный инструмент, располагающий большим количеством серверов по всему миру. Можно без преувеличения сказать, что каждый системный администратор его хоть раз, да использовал. Говоря о Speedtest обычно, мы имеем ввиду одноименный сайт, который позволяет выполнить тестирование, но существует и вариант теста для командной строки, который позволяет использовать его на серверах и в сценариях мониторинга.

Браузерные приложения всем хороши - не требуют установки, просты в использовании, наглядны, но только вот что делать, если вы работаете на сервере без графической оболочки или хотите использовать предлагаемые приложением функции в скриптах или сценариях? В этих случаях не обойтись без вариантов приложения для интерфейса командной строки - CLI (Command Line Interface).

Speedtest предоставляет такую возможность, приложение для командной строки можно получить на официальном сайте, доступны версии для Windows, Linux, macOS и FreeBSD. Далее мы будем рассматривать версию для Linux-дистрибутивов основанных на Debian, но это касается только установки, использование утилиты во всех поддерживаемых системах одинаково.

В Linux нам доступно два варианта использования утилиты: установить ее через пакетный менеджер или скачать архив с бинарным файлом. Первый вариант является более предпочтительным, так как правилами хорошего тона в Linux является установка ПО из репозиториев, хотя опытные администраторы могут просто использовать бинарный файл. Этим и хорош Linux - каждый может настраивать систему именно так, как нравится, а не так, как задумал кто-то там.

Инструкции по установке приведены на официальной странице, но мы все равно повторим их здесь. Установку следует производить с правами суперпользователя или используя sudo. Здесь таятся некоторые различия. С правами root нам достаточно выполнить:

curl -s https://install.speedtest.net/app/cli/install.deb.sh | bash

А через sudo:

curl -s https://install.speedtest.net/app/cli/install.deb.sh | sudo bash

Почему именно так? Потому что первая команда производит скачивание скрипта и в повышении прав не нуждается. А при использовании конвейера в Linux повышение прав не наследуется, т.е. все последующие команды будут выполнены с правами пользователя, без учета sudo. Поэтому sudo надо использовать именно перед командой, требующей повышения прав, а не в начале строки.

После выполнения указанных команд в систему будет подключен новый репозиторий и будет произведено обновление списка пакетов, после чего нужно будет просто установить утилиту командой:

apt install speedtest

Пользоваться ей очень просто, если мы запустим ее без аргументов, то будет выполнен тест с автоматическим выбором ближайшего сервера и выводом результатов в терминал:

speedtest

speedtest-cli-001.pngДля того, чтобы получить список ближайших серверов наберите команду:

speedtest -L

Обратите внимание на колонку ID, потому что в утилите командной строки требуется использовать именно идентификатор сервера.

speedtest-cli-002.pngВыяснив необходимый идентификатор можно выполнить тест с данным узлом используя для указания сервера опцию -s или --server-id, например, для Ростелекома:

speedtest -s 3260

speedtest-cli-003.pngНо возможности Speedtest этим не ограничиваются, утилита способна выводить информацию в различных форматах: несколько вариантов JSON, CSV и TSV (CSV с разделителем Tab). Для этого используйте ключ -f или --format:

speedtest -s 3260 -f json-pretty

speedtest-cli-004.pngИ если JSON вполне удобочитаемый формат, то CSV/TSV просто выводит строку чисел без расшифровки, чтобы правильно их интерпретировать можно использовать опцию добавляющую заголовки колонок --output-header:

speedtest-cli-005.png

Имейте ввиду одну особенность: вывод команд с указанием формата выводит скорость в байтах, чтобы получить привычные Mб/с полученное значение следует разделить на 125 000.

Как можно заметить, информация в нужном формате продолжает выводиться в терминал, чтобы направить ее в файл используйте:

speedtest -s 3260 -f tsv > ~/speedtest.tsv

Данная команда перенаправит вывод в файл speedtest.tsv в домашней директории пользователя и перезапишет его.

Если вы хотите дополнять файл, собирая в него информацию, то немного измените команду:

speedtest -s 3260 -f tsv >> ~/speedtest.tsv

speedtest-cli-006.pngПолученную информацию можно использовать самым разнообразным образом, скажем подключив к системе мониторинга Zabbix, где для этого имеются готовые плагины, либо, не имея иных инструментов, выполнив анализ в табличном редакторе:

speedtest-cli-007.pngНадеемся, что данный материал окажется вам полезен, а копилка администратора пополнится еще одним полезным инструментом.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал



Loading Comments