A cron egy klasszikus démon ( számítógépes program UNIX osztályú rendszereken ) , amely a jobok időszakos, meghatározott időpontban történő futtatására szolgál. A szokásos műveleteket a crontab fájlokban és speciális könyvtárakban elhelyezett utasítások írják le .
A cron név a görög χρόνος (hrόnos) - idő (angolul - chronos ) szóból származik . A cron fejlesztője , Ken Thompson megerősítette ezt egy privát beszélgetésben Brian Kernighannel . .
A systemd alapú rendszereken a cron -t valójában a beépített systemd.timer mechanizmus váltotta fel.
Az egyéni felhasználók számára létrehozott Crontab fájlok az [1] /usr/spool/cron/crontabs/ vagy /var/spool/cron/tabs/ könyvtárban találhatók . Nem javasolt manuálisan szerkeszteni őket, ehhez a parancsot használjuk crontab -e. A teljes rendszer kezeléséhez használt crontab fájlok az /etc/cron.d/ könyvtárban találhatók . Ezenkívül az /etc/cron.daily/ , /etc/cron.weekly/ és /etc/cron.monthly/ könyvtárak automatikusan (naponta, hetente vagy havonta) futó programokat tartalmaznak.
A cron fő konfigurációs fájlja /etc/crontaba következőképpen néz ki:
# /etc/crontab: az egész rendszerre kiterjedő crontab # A többi crontabtól eltérően nem kell futtatnia a `crontab' # parancsot az új verzió telepítéséhez, amikor ezt a # fájlt és az /etc/cron.d fájlokat szerkeszti. Ezek a fájlok felhasználói névmezőket is tartalmaznak, # amelyeket a többi crontab egyike sem. SHELL = /bin/sh PATH = /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # mh dom mon dow felhasználói parancs 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root teszt -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root teszt -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root teszt -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) #A rendszer minden felhasználójának saját crontab által beállított fájlja van , amely leírja, hogy mikor és milyen programokat kell futtatni a felhasználó nevében. A crontab fájl szerkesztéséhez egy speciális , azonos nevű crontab programot használnak, amely lehetővé teszi, hogy szerkesztés közben ne szakítsa meg a cron folyamatot.
Jelenítse meg az aktuális ütemezési fájl tartalmát:
crontab -lAz aktuális ütemezési fájl törlése:
crontab -rA felhasználó crontab fájljának szerkesztéséhez használja a [2] parancsot.
crontab -eA crontab táblázat 6 oszlopból áll, amelyeket szóközök vagy tabulátorok választanak el egymástól . Az első öt oszlop a végrehajtási időt ( perc , óra , nap , hónap , a hét napja ) állítja be, tartalmazhat számot, vesszővel elválasztott számlistát, kötőjellel elválasztott számtartományt, szimbólumokat *vagy /. A rendszer crontab fájljaiban az időmezők után megjelenik az a felhasználó, akitől a parancs fut. A karakterlánc összes többi karaktere végrehajtható parancsként értelmeződik a paramétereivel együtt. Ha a parancs szöveget küld a szabványos kimenetre, akkor a szöveg a felhasználó e-mailjére kerül .
* * * * * parancs végrehajtása ----- | | | | | | | | | ----- a hét napja (0-7) (vasárnap = 0 vagy 7) | | | ------- hónap (1-12) | | --------- a hónap napja (1-31) | ----------- óra (0-23) ------------- perc (0-59)Egy példa crontab fájlra :
# megjegyzések a szokásos módon #-vel kezdődnek # használd a /bin/sh-t shellként SHELL = /bin/sh # eredmények küldése erre a címre MAILTO = [email protected] # add hozzá a felhasználó saját könyvtárát a PATH PATH = /bin:/- hez usr/bin:/home/paul/bin #### A munkák itt kezdődnek # végrehajtása minden nap 0 óra 5 perckor, az eredmény hozzáadása a naplóhoz/napi 5 0 * * * $HOME /bin/daily.job >> $HOME /log/daily 2 > & 1 # végrehajtás minden hónap 1. napján 14:15-kor 15 14 1 * * $HOME /bin/monthly # minden hétköznap 22:00-kor 0 22 * * 1 -5 echo "Ideje hazamenni" | mail -s "Már 22:00 van" john 23 */2 * * * echo "Fut 0:23, 2:23, 4:23 stb." 5 4 * * nap visszhang "Vasárnap hajnali 4:05-kor fut" 0 0 1 1 * echo "Boldog új évet!" 15 10 .13 * * 1 .4 echo "Ez az üzenet hétfőn és csütörtökön 10:15-kor és 13:15-kor jelenik meg" 0 -59 * * * * echo "Futtatás minden percben" 0 -59/2 * * * * echo "Páros perceken fut" 1 -59/2 * * * * echo "Páratlan perceken fut" # 5 percenként */5 * * * * echo "Eltelt öt perc" # minden hónap első vasárnapján. -eq 7 a hét napjának kódja, azaz 1 -> hétfő , 2 -> kedd stb. 0 1 1 -7 * * [ " $( date '+\%u' ) " -eq 7 ] && echo " Ez a címke minden hónap első vasárnapján 1:00 órakor jelenik meg.A felhasználók kényelme érdekében sok rendszer rendelkezik speciális grafikus felhasználói felülettel a cron kezelésére .
Debian-alapú disztribúciók esetén:
A Kcron egy KDE felület a cron konfigurációs fájlok szerkesztéséhez . A segédprogramot az Alt+F2 billentyűkombináció indítja el, a szerkesztőablakban egérrel megadható:
Unix parancsok | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
|