Pogledajmo neke primjere stvarnog života cron poslova.
- Recimo da ste vlasnik web stranice i želite svim korisnicima web stranice svakodnevno slati e-poštu. Sve što morate učiniti je napisati skriptu za slanje e-pošte i postaviti cron posao za pokretanje te skripte svaki dan.
- Recimo da ste vlasnik reklamne agencije i želite podsjetiti sve oglašivače čiji je saldo ispod 5 USD da se napune. Sve što morate učiniti je napisati skriptu koja provjerava stanje svih oglašivača i kad padne ispod 5 $, poslat će obavijest na mobilni broj ili e-mail oglašivača. Zatim postavite cron posao za pokretanje skripte svakih 5 do 10 minuta ili svaki sat.
U Linuxu postoje mnoge druge upotrebe cron poslova.
U ovom članku pokazat ću vam kako pokretati cron poslove svake minute na Linuxu. Za demonstraciju ću koristiti Debian 9 Stretch. Ali možete koristiti bilo koju modernu Linux distribuciju po vašem izboru. Započnimo.
Osnove Crontaba:
Na Linuxu to ne morate biti korijen kako bi se pokrenuli cron poslovi. Cron poslove možete pokretati kao bilo koji korisnik. Svaki korisnik na Linuxu može koristiti krontab datoteku za pokretanje vlastitog skupa cron poslova.
Prema zadanim postavkama, korisnik nema krontab datoteka na Linuxu. Možete stvoriti krontab datoteka sa sljedećom naredbom:
$ crontab -e
Ako ovu naredbu izvodite prvi put, od vas bi se trebalo zatražiti da s popisa odaberete uređivač teksta. Ja ću odabrati nano, zadani. Možete odabrati onu koja vam se sviđa. Kada završite, pritisnite
The krontab datoteku treba stvoriti (ako već nije dostupna) i otvoriti s vašim omiljenim uređivačem teksta. Sada možete dodati vlastite cron poslove na kraju ove datoteke i kad budete sretni, samo ih spremite i izađite iz uređivača teksta.
Sintaksa izvođenja naredbe svake minute:
Sintaksa krontab datoteka je sljedeća:
minuta sat dayOfMonth mjesec dayOfWeek commandToRunOvdje,
- minuta Može biti 0 do 59.
- sat također može biti 0 do 59.
- dayOfMonth Može biti 1 do 31.
- mjesec Može biti 1 do 12.
- dan u tjednu Može biti 0 do 7. 0 i 7 znači nedjelja, 1 znači ponedjeljak, 2 znači utorak i tako dalje.
Za pokretanje a commandToRun naredbu svake minute, trebali biste je zapisati u krontab datoteka na sljedeći način:
* * * * * commandToRunPokretanje posla Crob svake minute:
Sad kad znamo teorije, dodajmo jednostavnu skriptu mjerač vremena.sh prema krontab datoteku i pogledajte kako njome upravljati.
U mjerač vremena.sh skriptu, imam samo sljedeće retke kodova. Sve što čini je stvoriti novu datoteku / home / shovon / bin / timer.zapisnik (ako već ne postoji) i dodaje mu izlaz naredbe date.
Ajmo sada dodati skriptu na naš krontab i pustite da se pokreće svake minute sa sljedećim redom:
* * * * * / home / shovon / bin / timer.sh
Jednom kada spremite krontab datoteku i izađite iz uređivača teksta, nova krontab treba instalirati datoteku.
Nakon što prođe minuta, nova datoteka je mjerač vremena.zapisnik je stvoren u željenom direktoriju kao što možete vidjeti u označenom odjeljku snimke zaslona u nastavku.
Od mjerač vremena.zapisnik log datoteku, očito je da skripta mjerač vremena.sh trči svake minute.
Hvatanje pogrešaka iz Cron poslova:
Da biste uhvatili pogreške iz cron posla, možete ih poslati na pogreška.zapisnik datoteka i normalni izlazi u pristup.zapisnik datoteku na primjer. Datotekama možete davati imena kako god želite.
Da bih to pokazao, izmijenio sam skriptu mjerač vremena.sh malo. Sada se pogreške šalju na pogreška.zapisnik datoteku u / home / shovon / bin direktorija i izlazi se šalju na pristup.zapisnik u / home / shovon / bin imenik.
Isprva / tmp / i_mora_ biti_ovdje datoteka ne postoji, pa dobivam pogrešku u datoteci pogreška.zapisnik datoteku kao što vidite.
The pristup.zapisnik datoteka je trenutno prazna.
Sada ću stvoriti datoteku / tmp / i_mora_ biti_ovdje
I kao što vidite, izlaz je u pristup.zapisnik dosje.
Ako želite, možete preusmjeriti izlaz i pogreške u istoj datoteci na sljedeći način:
Kao što vidite, STDIN i STDERR izlazi šalju se na van.zapisnik datoteka.
Osiguravanje da je posljednji posao završen prije ponovnog pokretanja posla:
Da bi ovo uspjelo, možete stvoriti privremenu datoteku neposredno nakon što posao započne i ukloniti je neposredno prije završetka. Tada možete provjeriti postoji li privremena datoteka prije pokretanja posla. Ako se dogodi, možete izaći iz posla i pokrenuti posao samo kada privremena datoteka nije dostupna.
Ova jednostavna skripta čini upravo to.
Kao što vidite, mjerač vremena.pid datoteka je stvorena.
Čitajući pristup.zapisnik datoteka dokazuje da se cron posao ne izvodi prije nego što prethodni cron posao završi. Kao što vidite, pokrenuo se u 01:32:01, a sljedeći put trebao je u 01:33:01, ali nije. Umjesto toga, trčao je u 01:35:01, otprilike 3 minute kasnije.
Organiziranje izlaza Cron Job za jednostavno uklanjanje pogrešaka:
Možete lijepo oblikovati izlaze kako biste olakšali otklanjanje pogrešaka u vašem cron poslu.
Primjer kako se to može dati dat je u sljedećoj skripti.
Kao što vidite, izlazi, pogreške i poruke o uspjehu lijepo se ispisuju u datoteci dnevnika.
Možete raditi nevjerojatne stvari s cron poslovima i skriptama ljuske. Ovdje sam demonstrirao neke ideje. Ali nebo je tvoja granica. Slobodno eksperimentirajte s bilo kojim idejama. Hvala što ste pročitali ovaj članak.