A cron olyan, a háttérben futó feladatkezelő, mely bizonyos időközönként, időpontokban meghatározott programokat futtat. A legtöbb Unix-szerű operációs rendszer alapvető része. Automatizálja a rendszer a karbantartási, adminisztrációs, egyéb folyamatait. Így például az internetre való csatlakozást vagy az e-mailek automatikus letöltését.

A crontab olyan szöveges fájl, mely tartalmazza azokat az információkat, adatokat, melyek a cront irányítják. Azt azonban, hogy kik azok a felhasználók, akik futtathatják a cront, illetve létrehozhatnak saját feladatlistát, crontabot a /etc/cron.allow és a /etc/cron.deny fájlok határozzák meg. Azok a felhasználók, akiknek a neve szerepel a cron.allow fájlban és/vagy nem szerepel a cron.deny-ben (az itt szereplők számára ugyanis tiltott), szerkeszthetik a feladatlistát.

Az időzítés általános kinézete a következő:

 * * * * * felhasználó / program 

A csillagok határozzák meg az egyes időegységeket, időintervallumokat:

  1. csillag a perc: 0-59 közötti értéket vehet fel
  2. csillag az óra: 0-23 közötti értékkel
  3. csillag a hónap napjai: 1-31 közötti értékkel
  4. csillag a hónap: 1-12 közötti értékkel
  5. csillag a hét napjai: 0-6 közötti értékkel, ahol 0 a vasárnapot jelöli

Ez után már csak azt kell megadnunk, hogy milyen műveletet szeretnénk beütemezni.

Példák az ütemezésre

Tegyük fel, hogy a „minta” nevű programunk futtatását szeretnénk időzíteni. Ez a különböző időpontok esetén a következőképp fog alakulni.

Óránként egyszer futtassa: 0 * * * *
Futtatás naponta egyszer éjfélkor: 0 0 * * *
Futtatás hetente egyszer vasárnap éjfélkor: 0 0 * * 0
Futtatás havonta egyszer a hónap első napján éjfélkor: 0 0 1 * *
Futtatás évente egyszer január 1-én éjfélkor: 0 0 1 1 *

A teljes példát nézve: 9 18 * * 5 /usr/local/bin/minta vagyis minden hónapban a hét 5. napján, azaz pénteken 18 óra 9 perckor futtassa le a minta programunkat.
Amennyiben több időpontot is szeretnénk megadni, azt vesszővel, szóköz nélkül tudjuk hozzáadni. Az előző példánál maradva: 9 18 * * 2,5 /usr/local/bin/minta . Ez azt jelenti, hogy szeretnénk, ha minden hónapban a hét második és ötödik napján, kedden és pénteken 18 óra 9 perckor futna a programunk.

Egyéb gyakori ütemezési lehetőségek:

*/5 : az összes 5-tel osztható alkalmat jelenti, például minden ötödik percben, órában stb.
1-5 : nagyobb intervallumok kifejezésére, hogy ne kelljen végigírni vesszővel elválasztva. Például a napoknál az 1-5 a hétköznapokat jelöli.

A cronban használható speciális karakterek jelentései:

  • Csillag (*) jelentése: az összes érték az adott tartományban, például minden perc az órában.
  • Perjel (/) jelentése: az adott tartományon belül meghatározott értékhez rendelt gyakoriság, például ha a perceket nézzük 5/15 jelentése, minden 5. perctől 15 percenként.
  • Százalékjel (%) jelentése: gyakorlatilag fordítottja a perjelnek.
  • Vessző (,) jelentése: több érték megadása az adott tartományon belül, például napoknál 2,3,4 mutatja a kedd, szerda, csütörtök napokat.
  • Kötőjel (-) jelentése: amennyiben több értéket kívánunk felsorolni, de túl hosszú lenne kiírni őket, összevontan is megadhatjuk. Az előző példánál maradva: 2,3,4 helyett írhatjuk 2-4 módszerrel is.
  • Kettőskereszt (#) jelentése: csak a hét napjainál használható,
  • „L” jelentése: az utolsó érték. Napoknál használva 4L jelenti a hónap utolsó csütörtökjét. Értelemszerűen csak a hét és hónap napjainál használható.