Opravilo Cron ali Cron je časovni načrtovalnik, pogost v sistemih Linux / Unix. Načrtuje določene uporabniške naloge za redno izvajanje v določenem datumu, času ali intervalih. Večina teh nalog so skripti za izvajanje funkcij, kot so varnostne kopije in še več. Za ustvarjanje teh opravil cron uporabljamo ukaze crontab. Crontab je ukaz / pripomoček UNIX, ki se uporablja za ustvarjanje in upravljanje opravil cron.
Kot boste videli spodaj, je ustvarjanje in urejanje opravila cron povsem preprosto. Najbolj neverjetno je, da vam po ustvarjanju ali urejanju opravila cron ni treba znova zagnati crona ali celo računalnika. Samo shranite datoteko in že ste pripravljeni.
Pogoste uporabe Cron Jobs
- Nastavitev časa strojne opreme: Network Time Protocol uporabljajo številni računalniki za nastavitev sistemskega časa, vendar ne nastavi časa strojne opreme. S sistemom cron lahko nastavite čas strojne opreme glede na sistemski čas.
- Načrtovanje nalog in izvajanje programov, ki se izvajajo z dnevnimi programi: S storitvijo cron lahko zaženete številne sistemske storitve, ki potrebujejo dnevni poziv, kot je Logwatch.
- Samodejno čiščenje imenika, zagon varnostnih kopij in še veliko več.
Osnovni deli ukaza cron
Standardna sintaksa crontaba je naslednja:
a b c d e USERNAME / izhod / pot / do / skripta
1.Ura in datum skupaj s ponavljajočim se opravilom določa pet polj:
-
- a: Zapisnik: (od 0 - 59)
- b: Ure: (od 0 - 23 )
- c: Dnevi: (od 0 - 31 )
- d: Meseci: (od 0 - 12 )
- e: Dnevi v tednu: (od 0 - 7. )
- a: Zapisnik: (od 0 - 59)
Opomba: Dnevi se začnejo s ponedeljkom. 0 in 7 predstavljata nedeljo
2. USERNAME
: Ne pozabite zamenjati tega z uporabniškim imenom
3. Določeno lokacijo in skript, ki jih bo izvedel cron, določa tretji segment:
/ pot / do / skripta
4. Zadnji odsek opredeljuje obvestilo uporabniku po zaključku opravila kot način sledenja nalog:
izhod
V mapi »Prejeto« je morda polno manjših opravil, ki so pogosto usmerjena. Da bi se temu izognili, lahko onemogočite samodejni izhod e-pošte tako, da v svoj ukaz cron dodate spodnji niz:
> / dev / null 2> & 1 e.g a b c d e USERNAME / pot / do / skripta> / dev / null 2> & 1
Poleg tega cron uporablja še štiri vrednosti, uporabljene pri podajanju več vrednosti v polju. To so:
- Zvezdica (*): Nanaša se na vse vrednosti v polju.
- Vejica (,): Uporabite za ločevanje seznama vrednosti v ukazu cron.
- Črtica (-): Navedite obseg vrednosti.
- Poševnica (/): razdeli vrednost na različne korake.
Nastavitev opravil cron
Ukazi crontab so odgovorni za ustvarjanje in urejanje opravil cron, ker datotek cron ne bi smeli urejati neposredno. Crontab določa, kako lahko ustvarjate, urejate, dodajate na seznam, odpravljate napake, nameščate in odstranjujete naloge cron.
Preden začnete z opravili cron, morate nujno zagotoviti, da je namizje ali strežnik Linux posodobljen z izvajanjem spodnjih ukazov:
posodobitev sudo apt
Če v vašem sistemu ni nameščen paket cron, ga namestite s spodnjim ukazom:
sudo apt-get namestite cron
Kako urediti datoteko crontab?
Za dokončanje postopka boste morali konfigurirati opravilo cron. Uporabnik, ki se prijavi, ko se ustvari opravilo cron, samodejno postane lastnik. To je mogoče spremeniti z ustvarjanjem lastnika opravila, ki bo zadolžen za upravljanje posla cron, kot bomo videli v tej objavi.
Če želite odpreti konfiguracijsko datoteko crontab za trenutno prijavljenega uporabnika, izvedite spodnji ukaz:
crontab -e
Sistem vas bo pozval, da izberete primernega urejevalnika. V našem primeru bomo izbrali prvo možnost (urejevalnik nano).
V vsako vrstico lahko dodate eno načrtovano opravilo glede na vaše želje.
Ko dodate naloge, zaključite s shranjevanjem datoteke in zapustite. Vsa navedena navodila bo prebral in izvedel demon cron. Spremembe bodo uveljavljene tudi brez ponovnega zagona sistema, saj se skladišče samodejno posodablja.
Uredi crontab za drugega uporabnika
Crontab lahko urejate za različne uporabnike z ukazom v spodnji sintaksi:
crontab -u drugo-uporabniško ime -e
Kako uporabljati posebne znake v ukazih crontab
Znaki in operaterji narekujejo večjo prilagoditev vašega sistema, saj razširjajo zmožnosti cron naloge.
- Poševnica se uporablja za razdelitev časovnega niza na določene korake. Na primer, za zagon varnostne kopije vsakih 30 minut lahko uporabimo:
* / 30 * * * *
- Zvezdica (*) se uporablja za izvajanje vseh vrednosti, ki jih je treba izvršiti. Na primer:
* / 15 ***
- Črtica (-) se uporablja za določanje obsega dejavnosti, na primer števila dni. Za
na primer, zagnali bomo kodo vsak delovni dan ob 6. uri zjutraj;
0 6 * * 1-5 / root / backup.sh
Tu 06 pomeni 6 zjutraj, 1–5 pomeni število dni (od ponedeljka do petka).
- Vejica določa posamezne primere, ko naj se koda zažene:
0 4 * * 2,4 / koren / varnostna kopija.sh
Zgornji ukaz bi vašo skriptno kodo izvedel ob 4. uri zjutraj v torek in četrtek.
- Lahko tudi kombinirate različne nadomestne znake, da še bolj prilagodite svoje ukaze. Na primer, za izvajanje našega skripta vsak drugi dan ob 35 minutah čez uro lahko uporabimo spodnji ukaz:
35 1-23 / 2 * * * / pot / do / skripta / skripta.sh
1-23 določa obseg ur, / 2 nastavi interval na vsako drugo uro.
Cron Options
- Seznam vseh cron opravil
Morda boste želeli našteti opravila cron v vašem sistemu, ne da bi odklenili konfiguracijsko datoteko crontab. To lahko storite tako, da zaženete terminal in vnesete spodnji ukaz:
crontab -l
Ta ukaz navaja vsa opravila cron, ki so prisotna v vašem sistemu.
- Izbriši vsa opravila crontab
Če želite izbrisati vse ukaze crontab, lahko uporabite spodnji ukaz:
crontab -r
- Izbrišite opravilo cron za drugega uporabnika.
crontab -r -u drugo-uporabniško ime
Uporabite nize v Crontabu
Strune so izjemno koristno orodje za razvijalce, saj se izogibajo ponavljajočemu se pisanju segmentov kode. Na srečo crontabs podpira različne vrednosti nizov. Vključujejo:
@hourly:
-enako kot - "0 * * * *" (Izvede se enkrat na uro)@ polnoč:
-enako kot - "0 0 * * *" (Izvede se enkrat na dan)@daily:
enako kot polnoč@teden:
-enako kot - "0 0 * * 0" (Izvede se enkrat na teden)@mesečno:
-enako kot - "0 0 1 * *" (Izvede se enkrat na mesec)@ letno:
-enako kot - "0 0 1 1 *" (Izvede se enkrat na leto)@ leto:
podobno kot @ letno@reboot:
Izvede se enkrat po vsakem ponovnem zagonu / ponovnem zagonu / zagonu.
Dober primer; če imate nadomestni skript, ki ga želite zagnati vsak dan, uporabite spodnji ukaz:
@daily / pot / do / backup_script.sh
Primeri cron opravil
Tu je seznam osnovnih opravil cron, ki jih lahko uporabite ob začetku:
-
- Če želite zagnati skript vsako minuto:
* * * * * / vaš / skript / pot.sh
- Če želite zagnati skript vsakih 40 minut:
40 * * * * / vaš / skript / pot.sh
- Če želite zagnati skript vsako uro:
0 * * * * / vaš / skript / pot.sh
- Če želite zagnati skript vsako polnoč:
0 0 * * * / vaš / skript / pot.sh
- Če želite zagnati skript vsakih 23 minut po polnoči, ponoči in ponoči vsak dan:
23 0-23 / 2 * * * / vaš / skript / pot.sh
- Za zagon skripta ob 4.05 vsako nedeljo.
5 4 * * sonce / vaš / skript / pot.sh
- Če želite med tednom zagnati skript ob 22. uri.
0 22 * * 1-5 / vaš / skript / pot.sh
- Za zagon scenarija 1. decembra - polnoči.
0 0 0 12 * / vaš / skript / pot.sh
- Za zagon scenarija v soboto ob polnoči.
0 0 * * 6 / vaš / skript / pot.sh
- Za zagon skripta Vsako uro.
0 * * * * / vaš / skript / pot.sh
- Če želite zagnati skript vsako minuto:
S temi osnovnimi primeri boste globlje razumeli zaporedje in kako ga je mogoče spremeniti.
Omejevanje dostopa do Cron
Vidimo, da so lahko opravila cron zelo priročna, še posebej, če želite avtomatizirati svoje naloge. Vendar je lahko tudi tvegano, če sistem dovoli, da kateri koli uporabnik ustvari cron opravilo. Tudi če to ne vpliva na osebne podatke, lahko nekatera opravila cron zavzamejo dokaj veliko sistemskih virov in tako zaostajajo v računalniku. Da bi se izognil takim scenarijem, lahko skrbnik sistema (korenski uporabnik) ustvari datoteko / etc / cron.dovolite
ali / etc / cron.zanikati
datoteko, ki vsebuje samo uporabnike, ki lahko 'ustvari / ne ustvari' cron delo.
The / etc / cron.dovolite
datoteka vsebuje uporabnike, ki lahko ustvarjajo, urejajo, prikazujejo ali odstranjujejo datoteke crontab. Če ta datoteka ne obstaja, lahko vsi uporabniki ustvarijo in upravljajo opravila cron, razen tistih v / etc / cron.zanikati
mapa. Če ni nobene od teh datotek, so za zagon ukaza crontab potrebne privilegije.
Zdaj, ko ste nekorenskim uporabnikom preprečili ustvarjanje opravil cron, če so jih že imeli, lahko razmislite o dodajanju njihovih opravil cron v korenski datoteki crontab. Ampak tukaj je uganka - ali z dodajanjem njihovih opravil cron korenskemu crontabu njihova opravila cron ne tečejo kot root? No, tu prihaja pomen polja USERNAME, o katerem smo govorili zgoraj v sintaksi ukaza cron. Na primer spodnji ukaz:
0 * * * * fosslinux / pot / do / skripta.sh
Deloval bo kot uporabniško opravilo "fosslinux" cron in ne kot korenski uporabnik.
Zaključek
Zdaj imate jasen vodnik za uporabo opravil Cron za avtomatizacijo različnih nalog v vašem sistemu. To vas ne bi smelo zamenjati z zagonskimi aplikacijami. Z zgornjimi primeri poskusite avtomatizirati preproste skripte. Sčasoma lahko kombinirate posebne znake in nadomestne karte, da izvedete veliko bolj vsakdanja opravila. Če šele začenjate, bi bilo super, če bi prebrali našo objavo na bash vadnici za skriptiranje s primeri, ki vam bodo pomagali ustvariti prvi skript.