Forum Turris
Fórum Turris Nápověda

Milí majitelé routerů Turris,

toto fórum bylo 9. 12. 2016 zmrazeno a nahrazeno naším novým Turris fórem. Ještě chvíli bude dostupné k prohlížení, ale již zde není možné přispívat. Více informací naleznete v oznámení o uzavření fóra.


Dear Turris routers users,

this forum has been frozen on Dec 9th, 2016 and replaced by our new Turris forum. It will be read-only accessible for some time after. For more information, read the announcement about closing the forum.

Nahoru Téma Majitelé routerů / Uživatelská vylepšení / Tip: Využití notifikačního subsystému ve vlastních skriptech (uzamčeno)
- Od Ondřej Caletka (>>>) Dne 2014-06-30 13:41 Hlasů 4
Jak jistě víte, Turris OS umí shromažďovat oznámení o novinkách. Ta jsou jednak zobrazována na titulní stránce rozhraní Foris, jednak mohou být posílána e-mailem. Tuto funkcionalitu můžete použít i pro svá vlastní hlášení. Stačí k tomu ve svých skriptech použít příkaz create_notification. Použití je vcelku triviální.

# create_notification
This program serves for creating messages which will be send to the user.
Usage:
         /usr/bin/create_notification -s [restart,error,upate,news] 'text of the message'


Příklad: Aktuální verze balíku transmission-daemon čas od času skončí na Segmentation Fault. Napsal jsem jednoduchou kontrolu, která se spuští cronem každých 10 minut a v případě potřeby službu znovu nastartuje. Při té příležitosti je vygenerována notifikace. Soubor /etc/cron.d/transmission vypadá takto:
MAILTO=""
02-52/10 * * * * root ps | grep -q [t]ransmission || ( /etc/init.d/transmission start && create_notification -s error "Transmission restartovano v $(date)" )
- - Od Karel Dne 2014-07-24 12:12
Dobrý den,
dal jsem do cronu, aby mi hlídal php5-fastcgi, protože se stává, že se sám vypíná, když kopíruji velké množství dat na externí disk turrise.

MAILTO=""
01-51/10 * * * * root ps | grep -q php || ( /etc/init.d/php5-fastcgi start && create_notification -s error "PHP restartovano v $(date)" )

ale nefunguje to, nezapne mi fastcgi znovu. Kde je chyba?

Děkuji za odpověď.
Nadřazený - Od Ondřej Caletka (>>>) Dne 2014-07-25 09:54
Vsimněte si prosím, že jsem ve svém skriptu použil grep [t]ransmission namísto prostého grep transmission. To proto, že vzhledem k tomu, jak shell spouští procesy v koloně, bude příkaz grep vždy součástí seznamu spuštěných procesů. Takže si myslím, že celý problém je v tom, že váš grep vždy skončí úspěchem, protože mezi procesy najde sám sebe.

Je dobré to odladit na příkazové řádce, například takto:

ps | grep -q [p]hp && echo ano || echo ne
- Od commar (>>) Dne 2016-04-22 13:26
Trochu jsem teď bojoval s O2, chvíli jsem měl veřejnou IP, chvíli ne, chvíli mi nešlo nic a používal jsem 3G USB dongle přes jiného operátora.
Abych měl z venku trochu kontrolu jakou IP zrovna mám, použil jsem:

MAILTO=""
# m h  dom mon dow  user  command
10 * * * *  root  create_notification -s news $(ifconfig pppoe-wan|grep "inet addr:"|awk '{print $2}'|awk -F : '{print $2}')


Třeba se to někomu bude hodit...

M.
Nahoru Téma Majitelé routerů / Uživatelská vylepšení / Tip: Využití notifikačního subsystému ve vlastních skriptech (uzamčeno)

Powered by mwForum 2.29.3 © 1999-2013 Markus Wichitill