Tuki

Crontab

Crontab-komennolla ohjataan Unixin ajastinjärjestelmää, Cronia. Järjestelmään voidaan määrittää ajettavaksi ohjelmia minuutin tarkkuudella kellonajan, päivämäärän tai viikonpäivän perusteella.

Ajastimesta on erityisesti hyötyä scriptien ajamisessa, jotka tarkistavat ovatko botit tai bouncerit käynnissä, tai vaikkapa koneella olevien sivujen päivittäisen ylläpitoscriptin ajossa.

Tehtävälistan muokkaaminen

Voit lisätä omia tehtäviäsi Cronille crontab-komennolla. Ensimmäinen tapa on tehdä halutut muutokset normaaliin tekstitiedostoon, ja tarjota tämä tiedosto crontabille parametrinä, esim:

apz@blue:~/ crontab tiedoston_nimi

Tällä tavalla korvataan kaikki omat Cronin tehtäväsi niillä, joita tässä uudessa tiedostossa on. Toinen tapa on editoida suoraan käytössä olevaa listaa, joka tapahtuu komennolla:

apz@blue:~/ crontab -e

Tehtävälistan formaatti

Muokkasitpa listaa kummalla tahansa tavalla, varsinaisten tehtävien formaatti on aina sama:

Minuutti Tunti Kuukaudenpäivä Kuukausi Viikonpäivä Komento

Kaikki viisi aikamerkintää ovat pakollisia, mutta jos ne eivät ole oleellisia käytettävään ajastukseen, ne korvataan tähdellä (*). Ajettavassa komennossa on oltava koko polku. Jos ajettava ohjelma saa aikaan ilmoituksia, ne tulevat sinulle E-mailitse. Jos et näitä halua, lisää loppuun: >/dev/null 2>&1

Voit myös määritellä arvoja tyyliin 'joka toinen'. Tämä tapahtuu antamalla arvoksi */2 (joka toinen), */3 (joka kolmas) jne.

Viikonpäiviksi käy englanninkieliset lyhenteet (Mon, Tue, Wed, Thu, Fri, Sat, Sun) tai numeroin: 0/7 sunnuntai, 1 maanantai, 2 tiistai, 3 keskiviikko jne.

Jokaisessa kohdassa voi olla useampi aikamäärite, jolloin ne erotetaan toisistaan pilkulla. Huomaa, että tällöin ei tule välilyöntiä. Esim: 5,10,15,20

Viimeisen rivin jälkeen on oltava yksi tyhjä rivi, tai muuten viimeisenä olevaa tehtävää ei ajeta.

Muista, että cronikaan ei pyöri ilmaiseksi koneella, joten liian tiheässä tahdissa tapahtuvat tehtävät hidastavat konetta. Kellonajoissa kannattaa minuuteiksi valita usein muita kuin tasalukuja, sillä koneella jossa käyttäjiä on paljon, on joku kuitenkin jo käyttämässä tasalukuja. Vähemmän käytetyn ajan valitseminen nopeuttaa toimintaa. Esimerkiksi botteja ja bouncereita on turha tarkistella alle puolen tunnin välein.

Esimerkkejä tehtävistä

Esimerkeissä ajamme tiedoston /home/apz/esim.pl ..

Kello 5:30:

30 5 * * * /home/apz/esim.pl

Aina 15 yli:

15 * * * * /home/apz/esim.pl

30 minuutin välein:

*/30 * * * * /home/apz/esim.pl

5, 17 ja 28 yli:

5,17,28 * * * * /home/apz/esim.pl

Joka maanantai ja torstai, kello 5:45

45 5 * * Mon,Thu /home/apz/esim.pl

Joulukuun ensimmäinen päivä. Huomaa, että kun kellonaikaa ei ole määritelty, tehtävä ajetaan kerran keskiyöllä:

* * 1 12 * /home/apz/esim.pl

Perjantai 13. päivä:

* * 13 * Fri /home/apz/esim.pl

Esimerkkejä botteihin ja bouncereihin:

Vaikka itse shellikone olisikin vakaa, IRC-boteilla ja bouncereilla on ajoittain ikävä tapa kaatua. Tekijät ovatkin tarjonneet näihin scriptejä, jotka tutkivat tietyin väliajoin botin/bouncerin tilan, ja käynnistävät sen uudelleen, mikäli tarpeellista. Nämä esimerkit olettavat, että olet editoinut näitä käytössä olevia scriptejä niiden vaatimalla tavalla; useimmissa on mukana tarkat ohjeet, joissa pääasiassa neuvotaan polkujen korjaaminen oikeaksi.

Eggdropissa on botchk-scripti, joka uudelleenkäynnistää kaatuneet botit.

7,37 * * * * /home/apz/egg/scripts/botchk >/dev/null 2>&1

Energymechissä samainen scripti taas on nimeltään checkmech:

2,32 * * * * /home/apz/mech/checkmech >/dev/null 2>&1

Ja PsyBNCssä se on psybncchk:

9,39 * * * * /home/apz/psybnc/psybncchk >/dev/null 2>&1