Portál AbcLinuxu, 9. prosince 2025 17:38
) spravit v BASHi ? Dakujem
V samotném Bashi by to šlo (umí TCP i UDP), ale to pravděpodobně nechceš.
Jednodušší bude přes wget stáhnout stránku a pomocí diff porovnat proti předchozí verzi, kterou sis uložil minule.
Potíž může nastat v případě, že se stránka dynamicky mění, např. obsahuje náhodný citát, dnešní svátek nebo datum atd. Pak by ti to hlásilo změny, i když by se ten podstatný obsah nezměnil. V tom případě potřebuješ porovnat jen obsah relevantních elementů – k tomu můžeš použít XPath (xpath), XQuery (galax-run nebo basex) nebo XSLT (xsltproc). Pokud je kód té stránky zprasený-nevalidní, tak před to budeš muset předřadit tidy, ale to je jen jeden příkaz/filtr.
wget / curl, správnu časť si regulárnym výrazom vyseknúť cez sed, a potom porovnať voči predtým uloženému stavu cez diff. Výsledok buď poslať ručne cez mail, alebo to len vypísať na stdout a nechať cron.
A chceš hledat nějaký řetězec na stránce, nebo zjišťovat, zda se od minule změnila?
Tohle poprvé spadne (soubor kurzy.txt ještě neexistuje) a pak ti to bude vypisovat rozdíl od minule:
diff kurzy.txt <(wget -O - -o /dev/null http://www.cnb.cz/cs/financni_trhy/devizovy_trh/kurzy_devizoveho_trhu/denni_kurz.txt | tee kurzy.txt)
Když to dáš do cronu, tak ti bude ten rozdíl chodit e-mailem.
Pokud hledáš konkrétní text, tak je to jednodušší:
wget -o /dev/null -O - http://www.cnb.cz/cs/financni_trhy/devizovy_trh/kurzy_devizoveho_trhu/denni_kurz.txt | grep -q "USD" && echo "stránka obsahuje požadovaný text"
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.