Představte si, že byste potřebovali změřit rychlost internetové přípojky. Pravděpodobně byste tedy sáhly pro webové službě speedtest.net a provedli jednoduchý test rychlosti, který vám provede relativně rychle test a hned vám zobrazí výsledek. Co když ale budete potřebovat linku hlídat po nějakou dobu, například dva dny? V tu chvíli tedy manuální pouštění testu moc smysl nedává a abyste dostali vzorek dat, který bude o lince alespoň něco vypovídat, budete potřebovat mít více testů, které se budou provádět automaticky v určenou dobu a výsledek se bude automaticky ukládat, jakmile test doběhne do konce.
Zadání tedy bylo mít krabičku, která bude provádět test internetové přípojky, a to v definovaných opakováních a tyto výsledky pak bude posílat do připraveného internetového serveru pro uložení. Dále je také dobré umět měnit základní parametry testu a to vzdáleně. Parametry rozumíme cíl testovacího serveru například Brno-Praha a rychlost opakování testů například co 5 minut. Nebo klidně jen co 2 hodiny. Navíc musí být zapojení naprosto triviální. Připravíme Raspberry, které bude stačit pouze zapnout do zásuvky a připojit eternetovým kabelem k testované síti, kde bude komunikovat pomocí DHCP konfigurace přímo s internetem. Již zmíněná služba Speedtest.net má pro tyto účely připravenou sadu programu pro spuštění s příkazovými řádky, a to pro systémy macOS, Ubuntu a další linuxové systémy. A právě balíček pro Ubuntu použijeme pro naši testovací Malinu.
Po instalaci programu speedtest cli můžeme spouštět testy, abychom ale mohli testovat automaticky, a navíc data posílat do „serveru“, ze kterého budeme pak načítat i další parametry testu. Nevyhne se to bez trochy toho programování. Využil jsem k tomu PHP skript, který se pomocí časovače (cron) pouští co 2 minuty. Skript nejprve spustí test, poté výsledky pošle na zvolenou adresu a ta se postará o uložení výsledku tak, aby byly výsledky ihned možné zobrazit, i když tak do testované oblasti nemáte přístup, můžete mít velmi rychle informace o aktuálním dění internetové linky. Jakmile se výsledky uloží, server se podívá na nastavení a vrátí Raspberry informaci, za jak dlouho má naplánovat další test a na který server se povede testování. Tyto údaje si následně Raspberry uloží do souboru a při dalším spuštění vždy ověří, jestli už je čas na další test či ne. Pokud ano, provede test a znovu uloží výsledky testu a aktualizuje si nastavení. Pokud ne pak se skript ukončí a další ověření následuje při dalším spuštění.
Takto jednoduše tak lze řešit změnu rychlosti testování, a to v rámci od 2 minut klidně do několika dní. Navíc tak můžete měnit zadání, aniž byste museli mít k Raspberry přístup a cokoliv museli změnit. Navíc takto můžete řídit i několik testovacích krabiček a každé mohou mít naprosto odlišnou sadu měření, a to na základě IP adresy, ze které komunikují nebo klidně vlastního identifikátoru. Pokud máte data na serveru, pak můžete vyhodnocovat výsledky kdykoliv je server ukládá, a tak si například můžete nastavit, že pokud je rychlost v rámci zadání linky špatná, například je pomalejší o více jak 20% po dobu více jak 5 testů za sebou může vám automaticky poslat email a vy se tak můžete dozvědět o chybě dříve, než se vám ozvou uživatele. Také lze jednoduše měnit i četnost testu automatem, pokud je linka v pořádku můžete naplánovat test co hodinu a když jsou výsledky špatné můžete testovat co 10 minut atd. Máte-li rádi grafy můžete si rychlosti generovat do grafu nebo tak jako já použít tu nejjednodušší cestu a ke skutečným číslům si ukládat i id testu a na něj poté poukazovat na webovou stránku speedtest.net, kde lze zobrazit podrobnosti.
Jak je vidět i velmi málo nákladu stačí k tomu naprogramovat si automatického „testera rychlosti“, který vám může velmi jednoduše předávat údaje o vlastnostech internetových přípojek. A to téměř bez údržby, a navíc s možností, jakkoliv test ovlivňovat, ať je testovací krabička zapojena kdekoliv, má-li však přístup k internetu.
Moblo by vás zajímat
Jak uvolnit volné místo na Raspberry pi pod systémem Raspbian
Stránka speedtest.net a program pro příkazovou řádku. (anglicky)
Vložit komentář
* - vyžadované údaje. RSS kanál s komentáři