Kirjoitin ohjelman (BASH-scripti) joka valvoo palvelinta (tai mitä hyvänsä pingattavaa laitetta) minuutin välein ja lähettää tekstiviestin nettitikun avulla jos laite ei vastaa pingiin. Ohjelma syntyi omasta tarpeesta valvoa että webbipalvelimen verkkoyhteys toimii.
Yhden ohjelman sijaan tein kaksi itsenäistä ohjelmaa:
1) Valvontaohjelma (mondev)
2) Tekstiviestien lähetys nettitikulla (sendmob)
Valvontaohjelma kutsuu tekstiviestien lähetysohjelmaa jos palvelin / verkkoyhteys ei toimi. Erillistä tekstiviestien lähetysohjelmaa voi hyödyntää muuhunkin tarkoitukseen, tuolla voi helposti lähettää mitä hyvänsä hälytyksia jostain muusta ohjelmasta tai tekstiviestejä päätteestä.
Ohjelmat löytyvät täältä:
http://www.homelinuxpc.com/download/mondev.bashhttp://www.homelinuxpc.com/download/sendmob.bashNämä on testattu halvan nettitikun kanssa (kiinalainen "Hulinna" alias "Cagileo") Saunalahden prepaid liittymällä mutta pitäisi toimia monella muullakin, ohjaukseen käytetään tavanomaisia "AT" -komentoja jotka löytyvät varmaan kaikista tikuista. Jos joku testaa muiden tikkujen toimintaa niin kommentit ovat tietysti tervetulleita kun itsellä ei ole tikkuvalikoimaa.
Asennus:
1) Tiputa molemmat ohjelmat koneellesi vaikka kotihakemistoosi
2) Anna ajo-oikeus:
chmod +x mondev.bash; chmod +x sendmob.bash
3) Aja ohjelma kerran niin se asentaa itsensä ja antaa helpin:
./sendmob.bash
./mondev.bash
Asennus kysyy salasanasi, asentuu -->/usr/local/bin.
Käyttö:
mondev valvottavan_nimi_tai_ip_osoite puhelinnumero [laitenimi] [viesti]
Laitenimi ja viesti eivät ole pakollisia.
Esimerkki:
mondev example.com +358401234567 Nettiyhteys on nurin !
mondev 192.168.1.10 +358401234567 Palomuuri ei vastaa
Komentorivillä voi antaa myös laitenimen. Tätä tarvitaan jos modemin laitenimi on jotain muuta kuin /dev/ttyUSB0. Oletuksena on /dev/ttyUSB0 jos laitenimeä ei anneta.
mondev example.com +358401234567 /dev/ttyUSB0 Nettiyhteys on nurin !
Jos esimerkissä kohteena oleva nimi "example.com" ei vastaa niin viesti lähtee numeroon +258401234567. Ohjelma ei pakota antamaan viestiä, silloin hälytyksenä vain menee tyhjä viesti (ja lähettäjän numerosta joutuu selvittämään mistä hälytys tuli).
Ohjelma loggaa tiedostoon "mondev.log" virhetapahtumat. Tiedosto on tavanomainen tekstitiedosto.
Pelkkiä viestejä ilman valvontaa ?
Tuota tekstiviestien lähetysohjelmaa voi käyttää yksinäänkin:
sendmob +358401234567 Lähetinpä viestin nettitikullani.
Ohjelmaa voi soveltaa periaatteessa kummin päin haluaa, voi asentaa palvelimelle ja seurata että netti näkyy tai seurata palvelinta ulkoa päin joltain toiselta koneelta. Valvoa voi mitä hyvaänsä laitetta tai yhteyttä jos kyseessä on vain jokin kohde joka vastaa pingiin. Ohjelman kuormitusvaikutus on liki täysi nolla. Kun ohjelma havaitsee yhteyden katkenneen se piippaa kerran, lähettää tekstiviestin ja kirjoittaa lokitiedostoon merkinnän. Viestin lähetyksen voi estää 10 sekunnin kuluessa katkaisemalla ohjelman ajon painamalla Ctrl-C. Ohjelmaa ajetaan päätteessä jos virhetapahtumat halutaan nähdä. Jos joku on huolissaan näiden skriptien tietoturvasta niin kaikki koodi on itse kirjoittamaani (ja bash-tiedostona helposti kenen hyvänsä tarkastettavissa).
Olen testikäyttänyt näitä kehittelyn aikana, jos vikoja löytyy niin korjataan perässä.
(off-topic)
Asian vierestä, sain taas huomata että ohjelman kirjoitus BASH: in avulla on todella tarkkaa puuhaa välilyöntien kanssa. Yksi välilyönti voi vaikuttaa yhtä paljon ohjelman toimintaan kuin mitä jos käräjäoikeuden antamassa vuoden tuomiossa lukee "karu selli" tai "karuselli". Voidaan tietysti ajatella että jälkimmäisessä tapauksessa paatunutkin rikollinen miettisi rikoksen kannattavuutta --- jo lyhyelläkin tuomiolla ja miten tuo vaikuttaisi korkeimman oikeuden päätöksenä ?