Cron: definíció, működés és crontab használata UNIX/Linux rendszerekben

A Cron egy olyan számítógépes program (háttérben futó démon), amellyel ütemezetten, előre meghatározott időpontokban és időközönként automatikusan elvégezhetőek feladatok. A UNIX rendszerekben és a UNIX-hoz hasonló operációs rendszerekben, például a Linuxban széles körben használják. A Cron kiválóan alkalmas ismétlődő karbantartási és adminisztrációs munkák automatizálására, de gyakran alkalmazzák más feladatokra is, például fájlok letöltésére az internetről vagy e-mailek rendszeres letöltésére.

A cron elnevezés a görög χρόνος (kronosz) szóból származik, amely az időt jelenti. A Cron beállítása általában a crontab (cron táblázat) használatával történik: ez a fájl határozza meg, hogy milyen parancsokat kell futtatni, és mikor.

Működés röviden

  • A cron démon folyamatosan fut a háttérben, és minden percben ellenőrzi a crontab bejegyzéseket.
  • Ha egy bejegyzés ideje aktuálissá válik, a cron elindítja a hozzá tartozó parancsot a megfelelő felhasználó jogosultságaival.
  • Ha a parancs kimenetét nem irányítjuk át, akkor a cron a kimenetet általában e-mailben elküldi a bejegyzés tulajdonosának (ha a MAILTO változó be van állítva), vagy a rendszer által meghatározott módon kezeli.

Crontab formátum és mezők

A crontab bejegyzések alapvető formátuma öt időmező + parancs:

  • perc (0–59)
  • óra (0–23)
  • nap a hónapban (1–31)
  • hónap (1–12 vagy rövid név: jan, feb …)
  • a hét napja (0–7, ahol 0 és 7 is vasárnap; vagy rövid név: mon, tue …)
  • parancs (a futtatandó parancs vagy a script teljes elérési útvonala)

Példák és gyakori szintaxisok:

  • * — bármely érték (pl. minden perc, minden óra)
  • lista (pl. 1,15,30) — konkrét értékek listája
  • intervallum (pl. 1-5) — kezdő és vég érték
  • léptetés (pl. */15) — minden 15. perc

Konkrét példák bejegyzésekre (felhasználói crontabban):

  • 0 2 * * * /usr/local/bin/backup.sh — minden nap 02:00-kor lefutó mentés
  • */15 * * * * /usr/local/bin/check-status.sh — minden 15. percben fut
  • 30 6 1 * * /usr/local/bin/monthly-report.sh — minden hónap 1-jén 06:30-kor
  • 0 5 * * 1-5 /usr/local/bin/workday-job.sh — minden munkanapon 05:00-kor

Speciális kulcsszavak

  • @reboot — rendszerinduláskor futtatja a parancsot
  • @yearly vagy @annually — évente egyszer (0 0 1 1 *)
  • @monthly — havonta egyszer (0 0 1 * *)
  • @weekly — hetente egyszer (0 0 * * 0)
  • @daily vagy @midnight — naponta egyszer (0 0 * * *)
  • @hourly — óránként (0 * * * *)

Crontab kezelése (parancsok)

  • crontab -e — szerkeszti a jelenlegi felhasználó crontabját
  • crontab -l — kilistázza a jelenlegi felhasználó bejegyzéseit
  • crontab -r — eltávolítja a jelenlegi felhasználó crontabját
  • crontab -u felhasználó -e — rendszergazdai jogosultsággal más felhasználó crontabját szerkeszthetjük

Rendszerszintű crontab és könyvtárak

  • /etc/crontab — rendszer szintű crontab, itt általában plusz user mező is szerepel: perc óra nap hónap hét user parancs
  • /etc/cron.d/ — konfigurációs fájlok könyvtára, amely hasonló formátumot használ, mint /etc/crontab
  • /etc/cron.hourly/, /etc/cron.daily/, /etc/cron.weekly/, /etc/cron.monthly/ — ezekbe a könyvtárakba helyezett végrehajtható fájlokat a rendszer futtatja a megfelelő időközönként (gyakran run-parts használatával)

Környezet, jogosultságok és jó gyakorlatok

  • Crontabban érdemes teljes elérési utakat használni a parancsokra és fájlokra (pl. /usr/bin/python3), mert a cron által használt PATH gyakran korlátozott.
  • Állítsuk be szükség szerint a MAILTO változót a crontab tetején, ha szeretnénk a kimenetet e-mailben kapni: MAILTO="[email protected]".
  • Hibatűrés: irányítsuk át a stdout és stderr kimenetet log fájlba: /path/script.sh >> /var/log/script.log 2>&1.
  • A crontab fájlban a megjegyzések #-szal kezdődnek.
  • Győződjünk meg róla, hogy a futtatott script futtatható (chmod +x), és helyes shebang (pl. #!/bin/bash) található benne.
  • Ügyeljünk az időzónára: a cron a rendszeridőt használja; ha más időzónát szeretnénk, azt egyértelműen kezelni kell.

Hibaelhárítás és naplózás

  • Ellenőrizzük, hogy a cron démon fut-e: rendszerfüggő parancsokkal (pl. systemctl status cron vagy service cron status).
  • Naplófájlok helye disztribúciótól függően: gyakran /var/log/syslog (Debian/Ubuntu) vagy /var/log/cron (RHEL/CentOS).
  • Ha a parancs nem fut le, ellenőrizzük a crontab szintaxisát, jogosultságokat, sorvége karaktereket (Windows CRLF problémák), és a PATH/ENV beállításokat.
  • A cron által visszaküldött e-maileket is ellenőrizzük (ha MAILTO be van állítva vagy alapértelmezett levelezés működik).

Alternatívák és kiegészítők

  • Anacron — hasznos laptopoknál és gépeknél, amelyek nem futnak folyamatosan; biztosítja, hogy a napi/havi feladatokat akkor is lefuttassa, ha a gép a tervezett időben nem volt bekapcsolva.
  • systemd timer — modern Linux rendszereken a systemd időzítői kínálnak rugalmas alternatívát a cron számára, jobb integrációval és részletesebb naplózással.

Összefoglalva: a Cron egyszerű és hatékony eszköz ismétlődő, időzített feladatok automatizálására UNIX/Linux rendszereken. A sikeres használathoz fontos a helyes crontab szintaxis, a teljes elérési utak alkalmazása, a kimenetek kezelése és a rendszer- vagy felhasználói crontabok közti különbség megértése.

Kérdések és válaszok

K: Mi az a Cron?


V: A Cron egy számítógépes program, amelyet a feladatok meghatározott időközönkénti ütemezésére használnak.

K: Hol használják a Cron-t?


V: A Cron-t a UNIX számítógépes operációs rendszerekben és a UNIX-hoz hasonló operációs rendszerekben, például a Linuxban használják.

K: Milyen feladatok ütemezhetők a Cron segítségével?


V: A legtöbb ismétlődő feladat ütemezhető a Cron segítségével. Gyakran használják a számítógép vagy számítógépes hálózat karbantartásával vagy adminisztrációjával kapcsolatos feladatok automatizálására, bár sok más feladatra is használható, például fájlok letöltésére az internetről és e-mailek letöltésére meghatározott időpontokban vagy időpontokban.

K: Honnan származik a Cron név?


V: A Cron számítógépes program neve a cron szóból ered, amely a görög χρόνος (kronosz) szóból származik, ami az időt jelenti.

K: Hogyan történik a Cron beállítása?


V: A Cron beállítása a crontab (cron táblázat) nevű fájl szerkesztésével történik. Ez a fájl felsorolja a számítógépen futtatandó konkrét feladatokat, és azt, hogy a feladatokat mikor kell futtatni.

K: Mi az a crontab?


V: A crontab egy olyan fájl, amely felsorolja a számítógépen futtatandó konkrét feladatokat és a feladatok futtatásának időpontját.

K: Milyen ismétlődő feladatokra használható a Cron?


V: A számítógép vagy számítógépes hálózat karbantartásával vagy adminisztrációjával kapcsolatos legtöbb ismétlődő feladat automatizálható a Cron segítségével. Számos más feladatra is használható, például fájlok letöltésére az internetről és e-mailek letöltésére meghatározott időpontokban vagy időpontokban.

AlegsaOnline.com - 2020 / 2025 - License CC3