V tej vadnici vam bomo predstavili osnovno predstavitev vsega, kar morate razumeti za razporejanje dela s cron. To vključuje osnovno sintakso cron, urejanje datoteke crontab, načrtovanje opravila s cron z nekaj primeri, ogled opravila cron itd.
Osnove Cron Joba
Razumejmo nekaj osnov dela cron.
Kaj je Crond?
Crond je demon v sistemu Linux, ki deluje v ozadju in vsako minuto preverja, ali je takrat na voljo kakšno opravilo. Če obstaja, to delo opravi, sicer ostane neaktiven.
Sintaksa Cron Job
Sintaksa za opravilo cron je naslednja:
* * * * * ukaz / skriptZ leve:
- Prva * ustreza zapisnikom (0-59)
- Drugi * ustreza uram (0-23)
- Tretji * ustreza dnevu v mesecu (1-31)
- Četrti * ustreza mesecu v letu (1-12)
- Peti * ustreza dnevu v tednu (0-6, od nedelje do sobote)
Če želite v polju določiti več vrednosti, uporabite naslednje simbole operatorja:
- Zvezdica (*): Določiti vse možne vrednosti za polje
- Črtica (-): Za sdoločite obseg vrednosti
- Vejica (,): Določite seznam vrednosti
- Ločilo (/): Če želite določiti vrednost koraka
Urejanje datoteke Crontab
Crontab je datoteka, ki vsebuje razporejena opravila v določeni sintaksi. Obstajata dve vrsti datotek crontab; eno za sistemska opravila cron in drugo za uporabniška opravila cron.
Sistemska opravila cron
Sistemska opravila cron se nahajajo v / etc / crontab datoteko in / etc / cron.d imenik, in jih vodijo skozi / etc / cron.na uro, / etc / cron.vsak dan, / etc / cron.tedensko in / etc / cron.mesečno. Do teh datotek lahko dostopa samo sistemski skrbnik.
Sistemski skrbnik lahko definira opravilo cron z naslednjim ukazom:
$ nano / etc / crontabTu je sintaksa opravila v / etc / crontab mapa:
# min hr dayofmonth month dayofweek uporabniško ime* * * * * uporabnik1 ifconfig
Uporabniška opravila cron
Uporabniška opravila cron se nahajajo v /var / spool / cron / crontabs imenik. Čeprav lahko ta opravila urejate ročno, jih je priporočljivo urejati z ukazom crontab -e.
Standardni uporabnik lahko definira opravilo cron z naslednjim ukazom:
$ crontab -eČe ste na primer prijavljeni kot "testni" uporabnik, bo zagon datoteke crontab -e uredil datoteko crontab za "testnega" uporabnika. Če ste prijavljeni kot korenski uporabnik, bo ukaz crontab -e uredil datoteko crontab za korenskega uporabnika.
V terminalu izdajte spodnji ukaz za urejanje datoteke crontab za katerega koli drugega uporabnika:
$ sudo crontab -uČe ste na primer prijavljeni kot uporabnik »test1« in želite urediti datoteko crontab za uporabnika »test2«, bi bil ukaz:
$ sudo crontab -u test2 -eTu je sintaksa opravila cron, ki ga lahko dodamo v datoteko crontab:
# m h dayofmonth month dayofweek ukaz* * * * * ifconfig
Na opravilih, ki jih določa uporabnik, lahko vidite, da ni vloženega »uporabniškega imena«.
Ukazi Crontab
Ukaz crontab se uporablja za urejanje, seznam in odstranjevanje opravil cron:
- crontab -e Za urejanje datoteke uporabnika crontab
- crontab -l Za prikaz vsebine datoteke crontab
- crontab -u [uporabniško ime] Če želite urediti katero koli datoteko crontab drugega uporabnika
- crontab -r Če želite odstraniti datoteko crontab trenutnega uporabnika
- crontab -i Če želite prikazati poziv, preden odstranite datoteko crontab trenutnega uporabnika
Načrtovanje zaposlitve s Cronom
S Cronom lahko opravite opravilo ob določenem času, datumu in intervalih z minimalno enoto v minutah, tj.e., lahko vsako minuto izvajate službo.
Če želite načrtovati opravilo s sistemom cron, odprite datoteko crontab z uporabo metode, obravnavane v prejšnjem razdelku. Ko odprete datoteko crontab, boste pozvani, da izberete urejevalnik besedil. Vnesite številko in izberite želeni urejevalnik besedila. Pomaknite se navzdol do dna datoteke in dodajte opravila v zgoraj opisano sintakso. Vsaka vrstica v datoteki določa en ukaz. Prvih pet vnosov v vrstici določa načrtovani čas, zadnji vnos pa določa, kateri ukaz ali skript naj se zažene.
Primer:
Naslednja vrstica v datoteki crontab bo razporedila opravilo cron za zagon ukaza / skripta vsake 30. minute v petih urah vsak dan v tednu od ponedeljka do sobote.
* / 30 5 * * 1-6 ukaz / skripta
Zapisnik
V tem polju določimo minute, ko želimo, da se ukaz izvede. Določena je od 0 do 59. Znak * v tem polju pomeni zagon opravila vsako minuto. V zgornji vrstici crontab znak * / 30 pove opravilu cron, naj vsakih 30 minut zažene navedeni ukaz / skript.
Ure
V tem polju določimo ure, ko želimo, da se ukaz izvrši. Določen je od 0 do 23. * V tem polju pomeni, da opravilo izvajate vsako uro. V zgornji vrstici crontab vrednost 5 pove opravilu cron, da določeni ukaz / skript zažene vsakih pet ur.
Dan v mesecu
V tem polju določimo določene dni v mesecih, ko želimo, da se ukaz izvede. Določena je od 1 do 31. * Na tem polju pomeni vsak dan. V zgornji vrstici crontab * opravilu cron pove, naj vsak dan zažene navedeni ukaz / skript.
Mesec v letu
V tem polju določimo mesece, v katerih želimo, da se ukaz izvede. Določena je od 1 do 12. * V tem polju pomeni vsak mesec. V zgornji vrstici crontab znak * opravilu cron pove, da mora vsak mesec izvajati navedeni ukaz / skript.
Dan v tednu
V tem polju določimo določene dneve v tednu, ko želimo, da se ukaz izvede. Določeno je od 0 do 6 od nedelje do sobote (0 za nedeljo in 6 za soboto). * Na tem polju pomeni vsak dan v tednu. V zgornji vrstici crontab znak * pove opravilu cron, da določeni ukaz / skript zažene vsak dan v tednu.
Primeri Cron Jobs
Tu je nekaj primerov cron opravil:
Vsakih 15 minut zaženite opravilo cron
Če želite razporediti opravilo cron vsakih 15 minut, dodajte spodnjo vrstico v datoteko crontab:
* / 15 * * * * ukaz / skriptVsak dan zaženite opravilo cron ob 5. uri zjutraj
Če želite razporediti opravilo cron vsak dan ob 5. uri zjutraj, dodajte spodnjo vrstico v datoteko crontab:
0 5 * * * ukaz / skriptVsak dan zaženite delo cron ob 17.00
Če želite načrtovati, da se opravilo cron izvaja vsak dan ob 17. uri, dodajte spodnjo vrstico v datoteko crontab:
0 17 * * * ukaz / skriptPrvi dan v mesecu zaženite opravilo cron ob 9. uri zjutraj
Če želite razporediti opravilo cron na prvi dan vsakega meseca ob 9. uri, dodajte spodnjo vrstico v datoteko crontab:
0 9 1 * * ukaz / skriptVsako uro zaženite cron vsako 15. marca
Če želite načrtovati opravilo cron vsako uro 15. marca, dodajte spodnjo vrstico v datoteko crontab:
0 * 15 3 * ukaz / skriptVsakih 5 ur zaženite opravilo cron
Če želite načrtovati opravilo cron vsakih 5 ur, dodajte spodnjo vrstico v datoteko crontab:
0 * / 5 * * * ukaz / skriptVsakih 15 minut zaženite opravilo cron
Če želite razporediti opravilo cron vsakih 15 minut, dodajte spodnjo vrstico v datoteko crontab:
* / 15 * * * *Uporaba nizov
Naslednje nize lahko uporabimo tudi za določanje opravila:
- @hourly: Če želite opraviti delo enkrat na uro, tj.e., “0 * * * *“
- @ polnoč: Če želite opraviti delo enkrat na dan, tj.e., “0 0 * * *“
- @daily: enako kot polnoč
- @teden: Če želite opraviti delo enkrat na teden, tj.e., “0 0 * * 0“
- @mesečno: Če želite opraviti delo enkrat na mesec, tj.e., “0 0 1 * *“
- @ letno: Če želite opraviti delo enkrat na leto, tj.e., “0 0 1 1 *“
- @ leto: enako kot @ letno
- @reboot: Za izvedbo opravila enkrat ob vsakem zagonu
Če želite na primer zagnati skript ali ukaz vsak teden, bi bil v datoteki crontab vnos:
ukaz / skript @weeklyVnaprej določeni imeniki Cron
V Linuxu je nekaj vnaprej določenih imenikov cron, kjer se shranjeni skripti samodejno izvršijo. Če pod te imenike postavimo katerikoli skript, se bo samodejno izvedel ob nastavljenem času.
- / etc / cron.vsak dan
- / etc / cron.na uro
- / etc / cron.mesečno
- / etc / cron.tedensko
Če želite na primer skript zagnati enkrat na mesec, ga boste morali postaviti v / etc / cron.mesečno.
Oglejte si Cron Jobs
Ogled opravil za trenutnega uporabnika
Za ogled vseh načrtovanih opravil cron za trenutnega uporabnika uporabite naslednji ukaz:
$ crontab -lOglejte si opravila za korenske uporabnike
Če si želite ogledati vsa razporejena opravila korenskega uporabnika, v terminalu izdajte naslednji ukaz:
$ cat / etc / crontabMorali se boste prijaviti kot korenski uporabnik ali zagnati ukaz kot sudo.
Oglejte si opravila za ostale uporabnike
Če si želite ogledati vsa razporejena opravila določenega uporabnika, v terminalu izdajte naslednji ukaz, ki nadomešča
Za zagon tega ukaza boste potrebovali privilegije sudo.
Oglejte si urna opravila cron
Če si želite ogledati vsa opravila cron, ki so konfigurirana za vsako uro, v terminalu izdajte naslednji ukaz:
$ ls -la / etc / cron.na uroOglejte si dnevna opravila cron
Če si želite ogledati vsa opravila cron, ki so konfigurirana za vsakodnevno izvajanje, v terminalu izdajte naslednji ukaz:
$ ls -la / etc / cron.dnevno /Oglejte si tedenska opravila cron
Če si želite ogledati vsa opravila cron, ki so konfigurirana za tedensko izvajanje, v terminalu izdajte naslednji ukaz:
$ ls -la / etc / cron.tedensko /Oglejte si mesečna opravila cron
Če si želite ogledati vsa opravila cron, ki so konfigurirana za mesečno izvajanje, v terminalu izdajte naslednji ukaz:
$ ls -la / etc / cron.mesečno/Varnostno kopirajte vsa Cron opravila
Priporočljivo je, da v datoteki shranite varnostno kopijo vseh opravil cron, da jo boste lahko obnovili v primeru izbrisa. Če želite narediti varnostno kopijo vseh trenutnih opravil, uporabite operater preusmeritve za preusmeritev izhoda crontab -l v datoteko.
$ crontab -l> backup_cron.txtOdstranjevanje vseh načrtovanih opravil Cron
Če želite odstraniti vsa načrtovana opravila cron, uporabite zastavico -r, kot sledi:
$ crontab -rCron Dovoljenje
Dostop do ukaza crontab lahko omejimo prek dveh datotek: / itd / cron.dovoli in / etc / cron.zanikati.
- / etc / cron.dovolite - Dodajte uporabnike (po enega v vrstico), ki jim želite dovoliti dostop do ukazov crontab. Ti uporabniki lahko izvajajo opravila po urniku.
- / etc / cron.zanikati - Dodajte uporabnike (po enega v vrstico), ki jim želite zavrniti dostop do ukazov crontab. Ti uporabniki ne morejo izvajati načrtovanih opravil.
Generatorji sintakse Crontab
Obstaja nekaj spletnih mest, ki omogočajo ustvarjanje sintakse za crontabs. Ta spletna mesta olajšajo ustvarjanje izraza crontab, ne da bi si morali zapomniti skladnjo. Čeprav obstajajo različna spletna mesta za generatorje sintakse, kot je crontabgenerator.com, crontab-generator.org in cronmaker.com. Tisti, ki mi je najbolj všeč in se mi zdi koristen, je crontab.guru. Na podlagi vnosa uporabnika ustvari izraz crontab, ki ga lahko kopirate in prilepite v datoteko crontab.
Zaključek
V tej vadnici smo razložili osnove cron opravil, njegovo sintakso in kako jo nastaviti. Razpravljali smo tudi o tem, kako si ogledati opravila cron, ustvariti varnostno kopijo in jih odstraniti, če niso več potrebni.