Oglejmo si nekaj resničnih primerov cron delovnih mest.
- Recimo, da ste lastnik spletnega mesta in želite vsem uporabnikom spletnega mesta vsak dan poslati e-poštno sporočilo. Vse, kar morate storiti, je, da napišete skript za pošiljanje e-pošte in nastavite opravilo cron, da bo ta skript zagnan vsak dan.
- Recimo, da ste lastnik oglaševalske agencije in želite opozoriti vse oglaševalce, katerih stanje je nižje od 5 USD, da ga napolnijo. Vse, kar morate storiti, je, da napišete skript, ki preveri stanje vseh oglaševalcev in ko je manj kot 5 $, bo na oglaševalsko mobilno številko ali e-pošto poslal obvestilo. Nato nastavite opravilo cron, da skript zažene vsakih 5 do 10 minut ali vsako uro.
V Linuxu obstajajo številne druge naloge cron opravil.
V tem članku vam bom pokazal, kako vsako minuto izvajati cron opravila v Linuxu. Za predstavitev bom uporabil Debian 9 Stretch. Lahko pa uporabite katero koli sodobno distribucijo Linuxa po vaši izbiri. Začnimo.
Osnove Crontaba:
V Linuxu vam ni treba biti koren za zagon cron opravil. Opravila cron lahko izvajate kot kateri koli uporabnik. Vsak uporabnik Linuxa lahko uporablja a crontab datoteko za zagon lastnega nabora cron opravil.
Uporabnik privzeto nima crontab datoteko v Linuxu. Lahko ustvarite crontab datoteko z naslednjim ukazom:
$ crontab -e
Če prvič izvajate ta ukaz, morate na seznamu izbrati urejevalnik besedil. Izbral bom nano, privzeti. Izberete lahko tistega, ki vam je všeč. Ko končate, pritisnite
The crontab datoteko je treba ustvariti (če že ni na voljo) in jo odpreti z vašim najljubšim urejevalnikom besedil. Zdaj lahko na konec te datoteke dodate lastna opravila cron in ko ste zadovoljni, jih preprosto shranite in izstopite iz urejevalnika besedil.
Sintaksa izvajanja ukaza vsako minuto:
Sintaksa crontab datoteka je naslednja:
minute ura dayOfMonth mesec dayOfWeek commandToRunTukaj,
- minuta je lahko 0 do 59.
- uro lahko tudi 0 do 59.
- dayOfMonth je lahko 1 do 31.
- mesec je lahko 1 do 12.
- dayOfWeek je lahko 0 do 7. 0 in 7 pomeni nedelja, 1 pomeni ponedeljek, 2 pomeni torek in tako naprej.
Za zagon a commandToRun ukaz vsako minuto, ga zapišite v crontab datoteka, kot sledi:
* * * * * commandToRunVsako minuto zagon opravila Crob:
Zdaj, ko poznamo teorije, dodajte še preprost skript časovnik.sh do crontab datoteko in si oglejte, kako jo upravljati.
V časovnik.sh skript, imam samo naslednje vrstice kod. Vse, kar naredi, je ustvariti novo datoteko / home / shovon / bin / timer.log (če že ne obstaja) in mu doda izhod ukaza date.
Zdaj pa dodajte skript v našo crontab in pustite, da teče vsako minuto z naslednjo vrstico:
* * * * * / home / shovon / bin / timer.sh
Ko shranite datoteko crontab datoteko in izstopite iz urejevalnika besedil, novo crontab datoteko.
Po preteku minute je nova datoteka časovnik.log je ustvarjen v želenem imeniku, kot lahko vidite v označenem oddelku spodnjega posnetka zaslona.
Iz časovnik.log dnevniški datoteki, je očitno, da skript časovnik.sh teče vsako minuto.
Zaznavanje napak s Cron Jobs:
Če želite odkriti napake iz opravila cron, jih lahko pošljete na napaka.log datoteka in običajni izhodi v dostop.log datoteke na primer. Datotekam lahko seveda poimenujete karkoli želite.
Da bi to dokazal, sem spremenil svoj skript časovnik.sh malo. Zdaj so napake poslane na napaka.log v datoteki / home / shovon / bin in izhodi se pošljejo v dostop.log v / home / shovon / bin imenik.
Sprva / tmp / i_mus_be_here datoteka ne obstaja, zato dobim napako v napaka.log datoteko, kot lahko vidite.
The dostop.log datoteka je trenutno prazna.
Zdaj bom ustvaril datoteko / tmp / i_mus_be_here
In kot vidite, je rezultat v dostop.log datoteko zdaj.
Če želite, lahko izhod in napake v isti datoteki preusmerite na naslednji način:
Kot lahko vidite, se izhoda STDIN in STDERR pošljeta na ven.log mapa.
Prepričajte se, da je zadnje opravilo končano pred ponovnim zagonom:
Da bi to delovalo, lahko ustvarite začasno datoteko takoj po začetku opravila in jo odstranite tik preden se konča. Nato lahko pred začetkom opravila preverite, ali začasna datoteka obstaja. Če se to zgodi, lahko zapustite opravilo in ga zaženete šele, ko začasna datoteka ni na voljo.
Ta preprost skript naredi ravno to.
Kot lahko vidite, časovnik.pid datoteka je ustvarjena.
Branje dostop.log datoteka dokazuje, da se opravilo cron ne zažene, preden se konča predhodno opravilo cron. Kot lahko vidite, je tekel ob 01:32:01 in naslednjič bi moral teči ob 01:33:01, a se ni. Namesto tega je tekel ob 01:35:01, približno 3 minute kasneje.
Organiziranje izhodov Cron Job za enostavno odpravljanje napak:
Izhode lahko lepo formatirate, da olajšate odpravljanje napak v vašem cron-u.
Primer, kako je to mogoče, je podan v naslednjem skriptu.
Kot lahko vidite, so izpisi, napake in sporočila o uspehu lepo natisnjeni v dnevniški datoteki.
Z opravili cron in skripti lupine lahko naredite neverjetne stvari. Tu sem demonstriral nekaj idej. Toda nebo je tvoja meja. Prosto eksperimentirajte z vsemi idejami, ki jih imate. Hvala, ker ste prebrali ta članek.