cron er en klassisk dæmon ( computerprogram på UNIX -klassesystemer ), der bruges til at køre job periodisk på et bestemt tidspunkt. Regelmæssige handlinger er beskrevet af instruktioner placeret i crontab- filer og specielle mapper.
Navnet cron er afledt af det græske ord χρόνος (hrόnos) - tid (på engelsk - chronos ). Udvikleren af cron , Ken Thompson , bekræftede dette i en privat samtale med Brian Kernighan . .
På systemd- baserede systemer er cron faktisk blevet erstattet af den indbyggede systemd.timer-mekanisme.
Crontab- filer oprettet til individuelle brugere er placeret i mappen [1] /usr/spool/cron/crontabs/ eller /var/spool/cron/tabs/ . Det anbefales ikke at redigere dem manuelt; til dette bruges kommandoen crontab -e. Crontab - filerne, der bruges til at styre hele systemet, er placeret i mappen /etc/cron.d/ . Derudover indeholder mapperne /etc/cron.daily/ , /etc/cron.weekly/ og /etc/cron.monthly/ programmer, der kører automatisk (dagligt, ugentligt eller månedligt).
Hoved-cron-konfigurationsfilen, /etc/crontab, ser nogenlunde sådan ud:
# /etc/crontab: systemdækkende crontab # I modsætning til enhver anden crontab behøver du ikke at køre `crontab' #-kommandoen for at installere den nye version, når du redigerer denne fil # og filer i /etc/cron.d. Disse filer har også brugernavnsfelter, # som ingen af de andre crontabs gør. SHELL = /bin/sh PATH = /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # mh dom mon dow brugerkommando 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 ) #Hver bruger af systemet har sin egen fil indstillet af crontab , som beskriver på hvilket tidspunkt og hvilke programmer der skal køres på vegne af denne bruger. For at redigere crontab -filen bruges et specielt crontab -program af samme navn , som giver dig mulighed for ikke at afbryde cron- processen, mens du redigerer.
Vis indholdet af den aktuelle tidsplanfil:
crontab -lSletning af den aktuelle tidsplanfil:
crontab -rFor at redigere din brugers crontab -fil, brug kommandoen [2]
crontab -eCrontab- tabellen består af 6 kolonner adskilt af mellemrum eller tabulatorer . De første fem kolonner angiver udførelsestidspunktet ( minut , time , dag , måned , ugedag ), de kan indeholde et tal, en liste over tal adskilt af kommaer, et område af tal adskilt af en bindestreg, symboler *eller /. I system- crontab - filer , efter tidsfelterne, angives den bruger, som kommandoen køres fra. Alle andre tegn i strengen fortolkes som en eksekverbar kommando med dens parametre. Hvis kommandoen sender noget tekst til standardoutput, sendes denne tekst til brugerens e-mail .
* * * * * kommando til at udføre - - - - - | | | | | | | | | ----- ugedag (0-7) (søndag = 0 eller 7) | | | ------- måned (1-12) | | ---------- dag i måneden (1-31) | ---------- time (0-23) ------------- minut (0-59)Et eksempel på crontab fil :
# kommentarer begynder med '#' som sædvanligt # brug /bin/sh som en shell SHELL = /bin/sh # send resultater til denne adresse MAILTO = paul@example.org # tilføj brugerens hjemmemappe til PATH PATH = /bin:/ usr/bin:/home/paul/bin #### Jobs starter her # udfør hver dag ved 0 timer 5 minutter, tilføj resultatet til log/dagligt 5 0 * * * $HOME /bin/daily.job >> $HOME /log/daily 2 > & 1 # udfør den 1. i hver måned kl. 14:15 15 14 1 * * $HOME /bin/monthly # hver hverdag kl. 22:00 0 22 ** 1 -5 ekko "Tid til at gå hjem" | mail -s "Klokken er allerede 22:00" john 23 */2 * * * ekko "Kører på 0:23, 2:23, 4:23 osv." 5 4 * * sol ekko "Kører kl. 4:05 om søndagen" 0 0 1 1 * ekko "Godt nytår!" 15 10 ,13 * * 1 ,4 ekko "Denne besked vises mandag og torsdag kl. 10:15 og 13:15" 0 -59 * * * * ekko "Kør hvert minut" 0 -59/2 * * * * echo " Kører på lige minutter" 1 -59/2 * * * * ekko "Kører på ulige minutter" # hvert 5. minut */5 * * * * ekko "Fem minutter er gået" # hver første søndag i hver måned. -eq 7 er ugedagskoden, dvs. 1 -> mandag , 2 -> tirsdag osv. 0 1 1 -7 * * [ " $( dato '+\%u' ) " -eq 7 ] && echo " Denne etiket vises hver første søndag i hver måned kl. 1:00"Af hensyn til brugernes bekvemmelighed har mange systemer specielle GUI- programmer til styring af cron .
For Debian-baserede distributioner:
Kcron er en KDE -grænseflade til redigering af cron -konfigurationsfiler . Værktøjet startes af Alt+F2 , i redigeringsvinduet kan du angive med musen:
Unix-kommandoer | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
|