Yritin aikoinaan joitain vuosia sitten tätä tapaa, mutta silloin asiassa oli vielä jotain vaikeuksia. En ole kokeillut sen jälkeen.
Tämä on kyllä toiminut suunnilleen niin kauan kuin SSH on ollut olemassa. Hankaluudet voivat johtua siitä, että teet avainparisäädöt väärälle käyttäjätunnukselle. Jos cron-skripti suoritetaan pääkäyttäjänä, ssh-asetukset pitää tehdä root-tunnukselle tai käyttäjää on vaihdettava skriptin sisällä scp:tä kutsuttaessa:
su tunnus -c "scp ..."
Siirtoa kannattaa ensin kokeilla ihan manuaalisesti, kirjautuen järjestelmään sillä tunnuksella, jolla siirto on tarkoitus tehdä. Tiedosto pitää saada siirtymään ilman salasanakyselyä ennen cron-skriptin virittelyä.
Vika ei ollut järjestelmässä, vaan tyhmässä käyttäjässä. En jättänyt senaikaisia kokeiluita talteen.
Tällä kerralla löysin mielestäni hyvän ratkaisun tähän ongelmaani.
Sen sijaan, että lähettäisin dataa palvelimelle, lähetänkin sen sähköpostilla tilille, jota ei käytetä muuhun.
Datasta tehdään myös kooste lähettävälle koneelle.
Tämä on sikäli hyvä tapa, että datat tulee varmemmin tarkistettua, kun niitä syntyy.
Kyseessä on mittalaitteisto, joka valvoo kiinteistön lämpötilaa, ovia, ikkunoita, veden virtausta, valaistusta...
Tein scriptin, joka hakee ulkoiselta palvelimelta uudet asetusarvot, mikäli niitä on tarjolla.
Tarjolla olemista varten on palvelimella tiedosto, jota muutetaan käsin, jos halutaan lähettää uusia komentoja mittalaitteistolle.
Tämän avaintiedoston muoto on sellainen, että ulkopuolinen ei käsitä sitä avaintiedostoksi. Se on itse asiassa aivan normaali html-sivu, jossa avaimena toimii mikä tahansa muutos tiedoston sisällössä.
Paranoidina olen vielä jakanut avaintiedoston ja siirrettävät tiedostot eri hakemistoihin palvelimella. Periaatteessa ne voisi vaikka jakaa eri palvelimillekin ja vaikka jakaa tiedostot pienemmiksi osiksi tai kryptata.
Haku tehdään niin, että kopioidaan palvelimelta scripti, joka ajetaan haun jälkeen. Tähän scriptiin voin palvelimella tehdä tarvittavat komennot, esimerkiksi käskyn hakea uudet asetusparametrit tai käskyn korvata käytössä olevia scriptejä uusilla.
Lopuksi tehdään mittauskierros ja lähetetään mittaustiedot sähköpostiin.
Watchdogin asemasta crontabissa on käsky, joka palauttaa vanhat scriptit, mikäli uusissa on virheitä.
Järjestelmän päivitys/mittauskierros tehdään tunnin välein. Tätä voi säätää crontabissa.
Kuulostaa monimutkaiselta, mutta on äärimmäisen yksinkertainen. Scriptissä ei montaa riviä ole, paitsi kommentteja.