1. Что нам понадобится
| Компонент | Зачем |
|---|---|
| speedtest‑cli (Ookla) | Быстрый измеритель ping, download и upload из терминала |
| Python 3 | Скрипт, который будет запускать тест и сохранять результаты |
| systemd‑timer | Планировщик, который будет вызывать скрипт каждые N минут |
| CSV‑файл | Удобный формат для последующего анализа в таблицах |
2. Установка измерителя
sudo apt update
sudo apt install -y speedtest-cli python3
Проверьте, что всё работает:
speedtest-cli --simple
Вы увидите три строки: ping, download и upload в Мбит/с.
3. Скрипт‑логгер
Создайте папку проекта и файл internet_speed_tracker.py:
mkdir -p ~/InternetSpeedTracker
cd ~/InternetSpeedTracker
nano internet_speed_tracker.py
#!/usr/bin/env python3
import subprocess, csv, os
from datetime import datetime
LOG = os.path.join(os.path.dirname(__file__), "speed_log.csv")
def run_test():
try:
out = subprocess.check_output(["speedtest-cli", "--simple"]).decode()
p, d, u = [line.split()[1] for line in out.splitlines()[:3]]
return p, d, u
except:
return "0", "0", "0"
def main():
ts = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
ping, dl, ul = run_test()
new = not os.path.isfile(LOG)
with open(LOG, "a", newline="") as f:
w = csv.writer(f)
if new: w.writerow(["Timestamp", "Ping (ms)", "Download (Mbit/s)", "Upload (Mbit/s)"])
w.writerow([ts, ping, dl, ul])
if __name__ == "__main__":
main()
Сохраните (Ctrl+O Enter) и сделайте файл исполняемым:
chmod +x internet_speed_tracker.py
Запустите один раз, чтобы убедиться, что появился speed_log.csv.
4. Автоматизация через systemd
Сервис
sudo nano /etc/systemd/system/internet-speed-tracker.service
[Service]
ExecStart=/usr/bin/python3 /home/youruser/InternetSpeedTracker/internet_speed_tracker.py
User=youruser
Таймер
sudo nano /etc/systemd/system/internet-speed-tracker.timer
[Timer]
OnBootSec=5min # через 5 мин после загрузки
OnUnitActiveSec=30min # каждые 30 мин (измените под себя)
Persistent=true
[Install]
WantedBy=timers.target
Перезагрузите конфигурацию и включите таймер:
sudo systemctl daemon-reload
sudo systemctl enable --now internet-speed-tracker.timer
5. Что дальше
Через несколько дней в speed_log.csv будет набор записей:
| Timestamp | Ping (ms) | Download (Mbit/s) | Upload (Mbit/s) |
|---|---|---|---|
| 2026‑02‑20 18:30:00 | 22 | 48.7 | 12.3 |
- Пики падения (скорость в два‑три раза ниже обычной) → перегрузка линии у провайдера.
- Нулевые строки → полное отсутствие соединения.
- Постоянно низкий download → возможно, проблема в оборудовании или тарифе.
С этими данными вы сможете аргументированно обратиться к провайдеру, показать, что "up‑to"‑скорости не достигаются регулярно.
Готово: ваш домашний роутер теперь сам собирает статистику, а вы получаете чёткую картину работы интернета.
