Selles artiklis selgitatakse croni tööde abil korrapäraste ajavahemike järel ülesannete ajastamist ja skriptide käitamist.
Mis on Cron?
Cron on tööülesannete ajastamise programm, mis töötab protsessina taustal. Seda saab kasutada teatud tööde perioodiliseks käitamiseks, mis on ajastatud, kasutades tema etteantud reeglite kogumit. Cron on eelinstallitud enamikus Linuxi jaotustes või saadaval hoidlates, et see käsitsi installida.
Croni eelseadistused
Ubuntu Cronil on komplekt eelnevalt määratletud ajastajaid. Saate neid kontrollida, käivitades alloleva käsu:
$ ls / etc / cron.*Tavaliselt on need kaustad “/ etc / cron.tunnis "," / etc / cron.iga päev ”,“ / etc / cron.igakuiselt ”ja“ / etc / cron.iganädalane ”.
Lihtsalt pange soovitud skriptid ühte neist kaustadest, et automatiseeritud toiminguid käivitada tunnis, päevas, kuus või nädalas.
Pange tähele, et cron kasutab vaikimisi shellit "/ bin / sh". Kui soovite croni skriptides kasutada kestana “/ bin / bash”, peate kasutama!# / bin / bash ”hashbang skriptifaili ülaosas või määratlege shell plaanitud bashi skripti esimesel real muutujana“ SHELL = / bin / bash ”. Keskkonnamuutuja „SHELL” alistamine töötab ka allpool selgitatud crontabi redaktoris.
Mitte kõik süsteemikeskkonna muutujad ei pruugi croni töödega kokku puutuda. Nii et üldiselt on hea mõte olulised keskkonnamuutujad käsitsi määratleda croni poolt ajastatud skriptis.
Crontab
Crontab võimaldab teil määrata oma kavandatud ülesanded. Selle abil saate konfigureerida croni ajakavasid, mis erinevad ülaltoodud neljast tavalisest croni eelseadist.
Ajastatud ülesande seadistamiseks crontabis käivitage kõigepealt crontabi redaktor, kasutades järgmist käsku:
$ crontab -eNüüd saate faili lõppu lisada järgmise vormingu kirje:
minut tund päev kuu argipäev / täis / tee / kuni / skript.shKus:
- minut: mis tahes väärtus vahemikus 0 kuni 59
- tund: mis tahes väärtus vahemikus 0 kuni 23, 0 on südaöö
- päev: mis tahes väärtus vahemikus 1 kuni 31
- kuu: mis tahes väärtus vahemikus 1 kuni 12
- nädalapäev: mis tahes väärtus vahemikus 0 kuni 6, 0 on pühapäev
Allpool olev crontab-kirje teeb teie töölaual ekraanipildi ja salvestab selle oma kodukataloogis 2. märtsil üks kord kell 15:13 pluss igal märtsikuu teisipäeval kell 15:13.
13 15 2 3 2 scrotKõigi crontab-kirjete loetlemiseks kasutage allolevat käsku:
$ crontab -lVeel näiteid
Croni ülesandeid saab kõige paremini selgitada näidete kaudu, nii et allpool on mõned näited, mis teevad teie töölauale perioodiliselt ekraanipilte ja salvestavad need kodukausta.
Lisaks viiele ajastamismuutujale kasutab cron tööde ajastamiseks ka mõnda erilist stringi. Need stringid on:
- @ tund: tööd juhitakse iga tund
- @daily / @midnight: tööd juhitakse iga päev
- @ nädalas: töö käib kord nädalas
- @ kuu: töö käib kord kuus
- @aastat / @aastat: töö käib üks kord aastas
- @reboot: töö käib üks kord iga taaskäivitamise / sisselogimise korral
Allpool olev crontabi kirje teeb igal taaskäivitamisel ekraanipildi üks kord:
@reboot scrot„@Reboot” saate asendada mis tahes muu eespool nimetatud eristringiga.
Tärni või metamärgi kasutamine viie muutuja asemel kordab tööd selle muutuja kõigi uute eksemplaride korral. Allpool olevast kirjest tehakse ekraanipilt iga minut:
* * * * * ScrotIga tund:
0 * * * * scrotIga päev kell 18:00:
0 18 * * * scrotIga kuu 6. päeval kell 18.00:
0 18 6 * * scrotSkripti käivitamiseks kindla perioodilise 30-minutilise intervalliga (töötab iga 30 minuti järel) kasutage nuppu "/"
* / 30 * * * * scrotKoma korrapärase täitmise määramiseks korrapäraste intervallidega saate kasutada komadega eraldatud muutujaid. Allolevas näites tehakse töölaua ekraanipilt uue tunni igal 1., 4. ja 5. minutil.
1,4,5 * * * * scrotCrontabi kirjete kontrollimine
Crontabi kirjete määratlemine võib olla keeruline, kuid nende silumine või kontrollimine, kas need töötavad õigete ajatemplitega, on veelgi keerulisem. Üks võimalus on kasutada virtuaalset masinat ja logida croni tööl perioodiliselt töötava skripti ajatemplid, lisades näiteks käsu “date” ja suunates väljundi tekstifaili. Parem lahendus on siiski kasutada ühte paljudest veebis saadaval olevatest veebipõhistest töökohtade testimisteenustest. Soovitan anda cron testeri veebisait kättesaadavaks siin proovida.
Järeldus
Croni tööde käivitamine on suurepärane võimalus korduvate ülesannete automatiseerimiseks, eriti serverites. Tööriist on äärmiselt võimas ja kohandatav. Siiski on oluline veenduda, et teie ajakava määratlus töötab õigesti, eriti kui on missioonikriitilisi ülesandeid.