2008. augusztus 25., hétfő

Crontab - Egyszerűen misztikus...

Nem véletlen a cím, hiszen itt egy olyan lehetőségről lesz szó, amit szinte minden Linux felhasználó ismer, tudja mire való, de csak nagyon kevesen használják. Miért van ez? Mert sokan túl bonyolultnak tartják, pedig meglátjátok mennyire egyszerű, és mennyire praktikus tud lenni.

A Cron lehetőséget ad rendszeresen elvégzendő feladatok ütemezésére. A crontab egy egyszerű felépítésű szöveges fájlt, amely szerkesztésével tudunk pontosan megadott időpontokban parancsokat futtatni.

Létezhet továbbá két konfigurációs fájl, amelyek megszabják hogy a rendszer mely felhasználói adhatnak meg ütemezett feladatokat. Crontab-et használhatsz ha a felhasználóneved megjelenik a /usr/lib/cron/cron.allow fájlban. Ha ez a fájl nem létezik, és a felhasználóneved nem szerepel a /usr/lib/cron/cron.deny fájlban, szintén nyerő vagy. Ha a cron.deny üres, valamint a cron.allow nem létezik, akkor mindenkinek van lehetősége ütemezésre.
Mielőtt bárki frászt kapna, közlöm hogy az Ubuntuban alapból szerkesztheted a crontab-et, így aztán az imént említett két konfigurációs fájlal nem kell foglalkozni.

Három féle kapcsolóval használhatjuk a crontab parancsot.
  • crontab -e Ha nem létezik létrehozza a crontab-ot, majd megnyitja szerkesztésre.
  • crontab -l Listázza az aktuális bejegyzéseket.
  • crontab -r Törli a crontab fájlt.

A crontab fájl hat oszlopra oszlik, amelyek pontosan leírt szabályok alapján töltendőek ki.
Ezek sorrendben a következőek:










  1. Perc (0-59)
  2. Óra (0-23)
  3. A hónap napja (1-31)
  4. Hónap (1-12)
  5. A hét napjai (0-6) (0=Vasárnap)
  6. A végrehajtandó parancs
Az egyes oszlopokat szóközzel választjuk el, és ha nem kívánjuk valamely adatot megadni annak oszlopába "*"-ot írunk. Amennyiben szükséges egy oszlopban több adatot megadni, azokat vesszővel válasszuk el, de szóközt NE tegyünk a vessző után! Ha egy időintervallumra szeretnénk hivatkozni, akkor a két számot kötőjellel különítjük el.

Nézzünk pár példát!
Ha pl. szeretnénk minden nap 15:20-kor kiüríteni a tmp könyvtárat, akkor a következő sort írjuk be:
20 15 * * * rm /home/felhasználóneved/tmp/*

Ha ugyanezt mondjuk csak a hétfői napokon szeretnénk megtenni:
20 15 * * 1 rm /home/felhasználóneved/tmp/*

Ha minden hónap 10. és 20. napján szeretnénk törölni a fájlokat:
20 15 10,20 * * rm /home/felhasználóneved/tmp/*

Talán még annyit érdemes hozzátenni érdekességként, hogy amennyiben szeretnénk naplózni a cron tevékenységét, egyszerűen irányítsuk át a megadott parancs kimenetét egy fájlba a következő képpen:
20 15 * * * rm /home/felhasználóneved/tmp/* > /home/felhasználóneved/rm_temp.log


Természetesen ezzel a Cron lehetősei közül csak a felszint kapargattuk, viszont szerintem ennyi elég a lényeg megértéséhez.
Ha valakinek nem tetszik az alapértelmezett GNU nano szerkesztő, van lehetőség grafikus programok használatára, de ez már egy következő cikk lehet.

Nincsenek megjegyzések:

Megjegyzés küldése