cron je klasický démon ( počítačový program na systémech třídy UNIX ) , který se používá k pravidelnému spouštění úloh v určitou dobu. Pravidelné akce jsou popsány instrukcemi umístěnými v souborech crontab a speciálních adresářích.
Název cron je odvozen z řeckého slova χρόνος (hrόnos) - čas (v angličtině - chronos ). Vývojář cronu Ken Thompson to potvrdil v soukromém rozhovoru s Brianem Kernighanem . .
Na systémech založených na systemd byl cron ve skutečnosti nahrazen vestavěným mechanismem systemd.timer.
Soubory Crontab vytvořené pro jednotlivé uživatele jsou umístěny v adresáři [1] /usr/spool/cron/crontabs/ nebo /var/spool/cron/tabs/ . Nedoporučuje se je upravovat ručně, k tomu slouží příkaz crontab -e. Soubory crontab používané ke správě celého systému jsou umístěny v adresáři /etc/cron.d/ . Kromě toho adresáře /etc/cron.daily/ , /etc/cron.weekly/ a /etc/cron.monthly/ obsahují programy, které se spouštějí automaticky (denně, týdně nebo měsíčně).
Hlavní konfigurační soubor cronu /etc/crontabvypadá nějak takto:
# /etc/crontab: systémový crontab # Na rozdíl od jiných crontab nemusíte spouštět příkaz `crontab' # k instalaci nové verze, když upravujete tento soubor # a soubory v /etc/cron.d. Tyto soubory mají také pole pro uživatelské jméno, # které žádný z ostatních crontabů nemá. SHELL = /bin/sh PATH = /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # mh dom mon dow uživatelský příkaz 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) #Každý uživatel systému má svůj vlastní soubor nastavený pomocí crontab , který popisuje, kdy a jaké programy se mají jménem tohoto uživatele spouštět. K úpravě souboru crontab se používá speciální stejnojmenný program crontab , který umožňuje nepřerušovat proces crontab během úprav.
Zobrazit obsah aktuálního souboru plánu:
crontab -lSmazání aktuálního souboru plánu:
crontab -rChcete-li upravit soubor crontab vašeho uživatele , použijte příkaz [2]
crontab -eTabulka crontab se skládá ze 6 sloupců oddělených mezerami nebo tabulátory . Prvních pět sloupců nastavuje dobu provedení ( minuta , hodina , den , měsíc , den v týdnu ), mohou obsahovat číslo, seznam čísel oddělených čárkami, rozsah čísel oddělených pomlčkou, symboly *nebo /. V systémových souborech crontab je po polích času uveden uživatel, od kterého je příkaz spuštěn. Všechny ostatní znaky v řetězci jsou interpretovány jako spustitelný příkaz s jeho parametry. Pokud příkaz odešle nějaký text na standardní výstup, je tento text odeslán na e-mail uživatele .
* * * * * příkaz k provedení ------ | | | | | | | | | ----- den v týdnu (0-7) (neděle = 0 nebo 7) | | | ------- měsíc (1-12) | | --------- den v měsíci (1-31) | ----------- hodina (0-23) ------------- minuta (0-59)Příklad souboru crontab :
# komentáře začínají '#' jako obvykle # použijte /bin/sh jako shell SHELL = /bin/sh # pošlete výsledky na tuto adresu MAILTO = paul@example.org # přidejte domovský adresář uživatele do PATH PATH = /bin:/ usr/bin:/home/paul/bin #### Úlohy začínají zde # spouštět každý den v 0 hodin 5 minut, přidat výsledek do log/denně 5 0 * * * $HOME /bin/daily.job >> $HOME /log/daily 2 > & 1 # provést 1. den každého měsíce ve 14:15 15 14 1 * * $HOME /bin/měsíčně # každý všední den ve 22:00 0 22 * * 1 -5 echo "Čas jít domů" | mail -s "Už je 22:00" john 23 */2 * * * echo "Běh v 0:23, 2:23, 4:23 atd." 5 4 * * ozvěna slunce "Běží v neděli ve 4:05" 0 0 1 1 * ozvěna "Šťastný nový rok!" 15 10 .13 * * 1 .4 echo "Tato zpráva se zobrazuje v pondělí a čtvrtek v 10:15 a 13:15" 0 -59 * * * * echo "Spustit každou minutu" 0 -59/2 * * * * echo "Běží v sudých minutách" 1 -59/2 * * * * echo "Běží v lichých minutách" # každých 5 minut */5 * * * * echo "Uplynulo pět minut" # každou první neděli každého měsíce. -eq 7 je kód dne v týdnu, tj. 1 -> pondělí , 2 -> úterý atd. 0 1 1 -7 * * [ " $( datum '+\%u' ) " -eq 7 ] && echo " Tento štítek se zobrazuje každou první neděli v měsíci v 1:00"Pro pohodlí uživatelů má mnoho systémů speciální GUI programy pro správu cronu .
Pro distribuce založené na Debianu:
Kcron je rozhraní KDE pro úpravu konfiguračních souborů cronu . Nástroj se spouští Alt+F2 , v editačním okně můžete myší zadat: