cron on klassinen demoni ( tietokoneohjelma UNIX - luokan järjestelmissä ) , jota käytetään suorittamaan töitä säännöllisesti tiettyyn aikaan. Säännölliset toiminnot kuvataan crontab -tiedostoihin ja erikoishakemistoihin sijoitetuilla ohjeilla.
Nimi cron on johdettu kreikan sanasta χρόνος (hrόnos) - aika (englanniksi - chronos ). Cronin kehittäjä Ken Thompson vahvisti tämän yksityisessä keskustelussa Brian Kernighanin kanssa . _ .
Systemd - pohjaisissa järjestelmissä cron on itse asiassa korvattu sisäänrakennetulla systemd.timer-mekanismilla.
Yksittäisille käyttäjille luodut Crontab - tiedostot sijaitsevat hakemistossa [1] /usr/spool/cron/crontabs/ tai /var/spool/cron/tabs/ . Ei ole suositeltavaa muokata niitä manuaalisesti, vaan tähän käytetään komentoa crontab -e. Koko järjestelmän hallintaan käytettävät crontab - tiedostot sijaitsevat /etc/cron.d/-hakemistossa . Lisäksi /etc/cron.daily/ , /etc/cron.weekly/ ja /etc/cron.monthly/ sisältävät ohjelmia, jotka suoritetaan automaattisesti (päivittäin, viikoittain tai kuukausittain).
Cronin pääasetustiedosto /etc/crontabnäyttää suunnilleen tältä:
# /etc/crontab: järjestelmänlaajuinen crontab # Toisin kuin mikään muu crontab, sinun ei tarvitse suorittaa `crontab' # -komentoa asentaaksesi uuden version, kun muokkaat tätä tiedostoa # ja tiedostoja /etc/cron.d. Näissä tiedostoissa on myös käyttäjätunnuskenttiä, # joita mikään muu crontab ei tee. SHELL = /bin/sh PATH = /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # mh dom mon dow käyttäjän komento 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * juuritesti -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 juuritesti -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * juuritesti -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) #Jokaisella järjestelmän käyttäjällä on oma crontabin asettama tiedosto , joka kuvaa milloin ja mitä ohjelmia tulee suorittaa tämän käyttäjän puolesta. Crontab -tiedoston muokkaamiseen käytetään erityistä samannimistä crontab -ohjelmaa , jonka avulla et keskeytä cron -prosessia muokkauksen aikana.
Näytä nykyisen aikataulutiedoston sisältö:
crontab -lNykyisen aikataulutiedoston poistaminen:
crontab -rMuokkaa käyttäjän crontab -tiedostoa komennolla [2]
crontab -ecrontab - taulukko koostuu 6 sarakkeesta , jotka on erotettu välilyönneillä tai sarkainmerkeillä . Ensimmäiset viisi saraketta asettavat suoritusajan ( minuutti , tunti , päivä , kuukausi , viikonpäivä ), ne voivat sisältää numeron, pilkuilla erotetun numeroluettelon, yhdysviivalla erotetun numeroalueen, symboleja *tai /. Järjestelmän crontab - tiedostoissa aikakenttien jälkeen ilmoitetaan käyttäjä, jolta komento suoritetaan. Kaikki muut merkkijonon merkit tulkitaan suoritettaviksi komennon parametreineen. Jos komento lähettää tekstiä vakiolähtöön, se lähetetään käyttäjän sähköpostiin .
* * * * * suoritettava komento ------ | | | | | | | | | ----- viikonpäivä (0-7) (sunnuntai = 0 tai 7) | | | ------- kuukausi (1-12) | | --------- kuukauden päivä (1-31) | ----------- tunti (0-23) ------------- minuutti (0-59)Esimerkki crontab - tiedostosta :
# kommentit alkavat tavalliseen tapaan #-merkillä # käytä /bin/sh -komentoa SHELL = /bin/sh # lähetä tulokset tähän osoitteeseen MAILTO = [email protected] # lisää käyttäjän kotihakemisto hakemistoon PATH PATH = /bin:/ usr/bin:/home/paul/bin #### Työt alkavat tästä # suorita joka päivä klo 0 tuntia 5 minuuttia, lisää tulos lokiin/päivittäin 5 0 * * * $HOME /bin/daily.job >> $HOME /log/daily 2 > & 1 # suorita joka kuun 1. päivä klo 14:15 15 14 1 * * $HOME /bin/monthly # joka arkipäivä klo 22:00 0 22 * * * 1 -5 echo "Aika kotiin" | mail -s "Kello on jo 22:00" john 23 */2 * * * echo "Käynnissä klo 0:23, 2:23, 4:23 jne." 5 4 * * aurinkokaiku "Juoksu sunnuntaina klo 4.05" 0 0 1 1 * kaiku " Hyvää uutta vuotta!" 15 10 .13 * * 1 .4 echo "Tämä viesti näytetään maanantaina ja torstaina klo 10:15 ja 13:15" 0 -59 * * * * echo "Aja joka minuutti" 0 -59/2 * * * * echo "Käyttää parittomina minuuteina" 1 -59/2 * * * * echo "Käyttää parittomina minuuteina" # 5 minuutin välein */5 * * * * echo "Viisi minuuttia on kulunut" # joka kuukauden ensimmäinen sunnuntai. -eq 7 on viikonpäiväkoodi, eli 1 -> maanantai , 2 -> tiistai jne. 0 1 1 -7 * * [ " $( date '+\%u' ) " -eq 7 ] && kaiku " Tämä tarra näytetään joka kuukauden ensimmäisenä sunnuntaina klo 1.00."Käyttäjien mukavuuden vuoksi monissa järjestelmissä on erityiset GUI -ohjelmat cronin hallintaan .
Debian-pohjaisille jakeluille:
Kcron on KDE - käyttöliittymä cron - asetustiedostojen muokkaamiseen . Apuohjelma käynnistyy Alt+F2 , muokkausikkunassa voit määrittää hiirellä:
Unix-komennot | ||||||||
---|---|---|---|---|---|---|---|---|
|