Sivut

keskiviikko 22. heinäkuuta 2015

Vaihtuva IP -osoite

Vaihtuuko oma IP -osoitteesi joka kerran kun avaat uuden internet yhteyden?
Se on joskus hankalaa, jos käytät sellaisia palveluita, joihin kirjautuminen tehdään IP -osoitteen perusteella tai käyttämäsi palvelu ei muista sinun tietojasi, koska osoitteesi on vaihtunut.

Siihen tarjoaa avun Unix/Linux järjestelmän cron -ohjelma. Jälleen Wikipediaa: "Cron on ajastuspalvelu Unix-pohjaisille käyttöjärjestelmille. Nimi pohjautuu kreikan sanaan ”chronos” (χρόνος), joka tarkoittaa aikaa. Yleensä ajastimia muokataan crontab -ohjelmalla, joka ohjaa crond -daemonia, joka ajaa komennot taustalla ja tarkistaa minuutin välein, jos komentoja pitää suorittaa ja suorittaa ne. Tehtävät suoritetaan, kun aika- ja päivämääritykset täsmäävät nykyhetkeen."

Pitääksesi oman IP -osoitteesi voimassa, tulee cron -ohjelman lähettää joku kutsu internetiin, jolla yhteys avataan säännöllisesti. Silloin operaattorin ns. "Leasing time" ei mene ikinä umpeen eikä IP -osoite vaihdu jokaisella kirjautumiskerralla.

Tähän riittää yksinkertainen PING -komento, joka kutsuu vaikka google.com palvelinta tietyin väliajoin. Ajastus riippuu oman operaattorin "Leasing time" asetuksista, mutta yleensä tunnin välein tapahtuva kysely riittää. Silloin tämä kysely ei aiheuta ylimääräistä ruuhkaa operaattorin palvelimella. Monella operaattorilla tämä ajastus on yleensä jopa neljä tuntia. Tietysti yön yli sammuksissa oleva kone saa aamulla taas uuden IP -osoitteen. Siksi tämä tietysti vaatii yhden sellaisen tietokoneen, joka on käynnissä 24/7 ja siinä on oikein asennettu cron -ohjelma, mukaanlukien esimerkiksi PING -palvelua käyttävä ajastus. Tähän yleensä vaaditaan Unix/Linux kone. Se vaan on yksinkertaisinta! En väitä etteikö Windowsilla voisi tehdä saman palvelun.

Muuta mukavaa mitä Unix/Linux cron -palvelulla voi tehdä.
Tässä openSUSE /etc/crontab sisältöä.

# Update all installed packages with their newer available versions.
15 5 * * * root zypper-out-html.sh > zypper/INFO/zypper-ps.html
20 5 * * * root php zypper/poll_zypperinfo.php >/dev/null 2>&1
Nämä kaksi komentoa suorittavat openSUSE palvelimen päivityksen automaattisesti joka päivä 15(20)min yli klo 5:00 aamuyöllä ja lähettävät tiedot toiminnasta minulle sähköpostiin.

# Dump local MySQL database (every day 02:00)
0 2 * * * root mysql_dump.sh > mysql/mysql_dump.log
Tämä komento tekee varmistuksen paikallisesta MySQL tietokannasta joka yö klo 2:00 ja kirjaa tapahtumat lokitiedostoon.

# Get temperature sensor readings, write to MySQL database and create graphs
*/2 * * * * root bin/digitemp_cron.sh > bin/digitemp_cron.log 2>&1
Tämä ohjelma lukee lämpötila-antureiden tiedot (siis lämpötilat) kahden minuutin välein (*/2), tallentaa luetut arvot tietokantaan ja piirtää grafiikan

# Read weather, update database (5min) update web-site (30min).
*/5 * * * * root rrdweather/rrdweather_cron_data.sh >/dev/null 2>&1
6,36 * * * * root php rrdweather/poll_weather.php >/dev/null
Nämä ohjelmat hakevat Weather.com (USA) palvelusta Mikkelin lentoaseman säätiedot (5min välein). Tiedot tallennetaan tietokantaan ja niistä piirretään grafiikka (6min ja 36min yli tasatunnin). Miksi USA? No siksi, että pienen ja sisukkaan Suomen palvelut ovat maksullisia (Foreca tai Ilmatieteenlaitos).