Утилита для подготовки текста жалобы интернет-провайдеру при проблемах с маршрутизацией или скоростью загрузки.
Скрипт замеряет скорости до публичных зеркал ALT Linux через
epm repo mirrors speedtest, выявляет «медленные» направления, собирает
по ним ping и mtr, после чего формирует готовый текст жалобы
(на русском языке) с цифрами и приложениями для отправки в техподдержку.
- Часть зеркал отдают сотни KB/s, другие — десятки MB/s с одного и того же хоста — это типичный признак проблем на пиринге или маршрутизации у провайдера.
- Нужно подкрепить обращение в поддержку конкретными измерениями, а не «у меня медленно».
- ALT Linux (используется
epm) mtr,ping(iputils),curl,whois
Скрипт сам пытается установить недостающие пакеты через epm assure
в начале работы — отдельных действий не требуется.
./isp-complaint.sh > complaint.txtВ stdout — готовый текст жалобы, в stderr — прогресс выполнения.
Полный прогон занимает ~5–7 минут (epm speedtest ~2–3 мин + по mtr
на каждое зеркало).
Передаются через переменные окружения:
| Переменная | По умолчанию | Описание |
|---|---|---|
SLOW_THRESHOLD |
1.0 |
Скорость в MB/s, ниже которой зеркало считается «медленным» (в жалобу попадают только такие) |
FAST_THRESHOLD |
5.0 |
Скорость в MB/s, выше которой зеркало считается эталонным (для контраста в отчёте) |
PING_COUNT |
10 |
Количество ping-пакетов на каждую цель |
MTR_COUNT |
30 |
Количество циклов mtr на каждую цель |
Пример более подробного прогона:
SLOW_THRESHOLD=2.0 PING_COUNT=20 MTR_COUNT=60 ./isp-complaint.sh > complaint.txtmtr требует CAP_NET_RAW. Скрипт проверяет, работает ли mtr от
текущего пользователя; если нет — пробует sudo -n mtr (без пароля).
Если и так не получается — выводит понятную ошибку с подсказками:
- запустить от root;
control mtr public— выдатьsetuid-флаг бинарю на ALT Linux;setcap cap_net_raw+ep $(command -v mtr-packet);- настроить NOPASSWD
sudoдляmtr.
- Заголовок: дата, hostname, внешний IP, сведения по
whois. - Текст обращения к провайдеру с описанием проблемы.
- Сводная таблица: цель / IP / скорость загрузки / ping avg / loss% / статус.
- Приложение 1 — полный вывод
epm repo mirrors speedtest. - Приложение 2 — полный вывод
pingпо всем целям. - Приложение 3 — полный вывод
mtr -wzbc N -rпо всем целям.
Статусы целей в сводке:
OK— связность есть, потери отсутствуют.LOSS— есть потери пакетов.UNREACH— цель недоступна поping.DOWNLOAD_FAIL—epmсообщилerrorдля этого зеркала.
TARGET IP MB/s AVG_MS LOSS_% STATUS
mirror.eterfund.org 135.181.95.108 error 8.811 0 DOWNLOAD_FAIL
mirror.yandex.ru 213.180.204.183 18.43 13.626 0 OK
download.basealt.ru 176.12.98.77 34.48 12.319 0 OK
ftp.altlinux.org 62.152.55.238 41.84 9.925 0 OK
MIT — см. LICENSE.