Cron

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt hozzászólók, és jelentősen eltérhet a 2016. szeptember 14-én felülvizsgált verziótól ; az ellenőrzések 28 szerkesztést igényelnek .

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 ) #

crontab

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 -l

Az aktuális ütemezési fájl törlése:

crontab -r

A felhasználó crontab fájljának szerkesztéséhez használja a [2] parancsot.

crontab -e

A 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.

Jellemzők

  • Minden feltételt (kezdési időpontot) a "logikai ÉS" ellenőrzi, kivéve a "hét napja" és "a hónap napja" feltételeket - együtt megadva, azokat a "logikai VAGY" dolgozza fel, azaz "bármelyik napon" a napok", ami a dokumentációban is megjelenik (Ubuntu, Debian, FreeBSD). Ez a logika azonban nem nyilvánvaló, és nem teszi lehetővé olyan feltétel létrehozását, mint „minden hónap első hétfője” vagy „minden péntek 13-án”. A fejlesztők nem változtatnak ezen a viselkedésen, szabványnak tekintve. [3]
  • Minden crontab fájlnak üres sorral kell végződnie, ellenkező esetben a rendszer figyelmen kívül hagyja az utolsó szabályt vagy a teljes fájlt.
  • A crontab fájl parancsai a szabványos shell szintaxist használják, de nem oszthatók fel több sorra.
  • A program figyelmen kívül hagyja az automatikusan ellenőrzött könyvtárakban (például /etc/cron.daily/ ) lévő végrehajtható fájlokat, ha a nevükben pont van.
  • A néhány percenként eltolásos crontab szintaxis váratlan eredményekhez vezethet. Tehát a felvétel 1-56/5 * * * *nem indul el minden óra 1. percében; az "óra 1. percétől kezdődően 5 percenként" aktiválásához használja a 1-59/5 * * * *vagy a formátumot 1,6,11,16,21,26,31,36,41,46,51,56 * * * *.
  • A %run parancs egy karaktere arra szolgál, hogy újsort adjon át a parancsnak (ha nem menekült). Az ezt követő parancsszöveg nem parancssori paraméterként, hanem szabványos bemeneten keresztül kerül átadásra a futó programnak .
  • Az elindított parancsok kimenete elküldésre kerül annak a felhasználónak, akinek nevében az indítást végrehajtották. Ha az utasítás a crontab fájlban található a parancs előtt MAILTO=<new@email>, akkor a kimeneti adatok a megadott címre kerülnek elküldésre.

Grafikus felhasználói felület

A felhasználók kényelme érdekében sok rendszer rendelkezik speciális grafikus felhasználói felülettel a cron kezelésére .

Gnome ütemezés

Debian-alapú disztribúciók esetén:

  • Telepítés:sudo apt-get install gnome-schedule
  • Futtassa: Alkalmazások → Rendszereszközök → Ütemezés [1]

kcron

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ó:

  • a program futtatható fájljának teljes elérési útja
  • a megfelelő időpont a program elindításához
  • a program végrehajtása során szükséges környezeti változókat

Hasonló programok

  • Az NnCron  egy Windows ütemező .
  • Feladatütemező  – Windows Feladatütemező és konzolsegédprogramjaschtasks.exe.
  • at  - adott időpontban egyszer futtatja a programokat.
  • anakron  - a programok időszakos indítása, nem feltétlenül pontosan a megadott időpontban: például ha a gépet a feladatban megadott időpontban kapcsolták ki, akkoranacronkésőbb végrehajtja a feladatot.
  • inetd  - hálózati kérés szolgáltatási programok futtatása.
  • upstart  - eseményszolgáltató programok indítása (a cron, atd, anacron, inetd általánosítása ).

Jegyzetek

  1. Man cron Archiválva : 2007. május 28. a Wayback Machine -nál .
  2. Cron Howto archiválva : 2011. május 15. a Wayback Machine -nél .
  3. A Debian Issue Tracker vita archiválva : 2018. április 11., a Wayback Machine -en .

Linkek