Pokrenite Cron posao svake minute

Run Cron Job Every Minute



Ako želite pokrenuti program ili skriptu u pozadini na Linuxu, cron posao je vrlo važan. Uz pomoć cron poslova možete izvršiti program ili skriptu u pozadini nakon zadanog vremenskog intervala.

Pogledajmo neke primjere cron poslova iz stvarnog života.







  • Recimo, posjedujete web stranicu i želite svim korisnicima svoje web stranice svakodnevno slati e -poštu. Sve što trebate učiniti je napisati skriptu za slanje e -pošte i postaviti cron posao za pokretanje te skripte svaki dan.
  • Recimo, posjedujete agenciju za oglašavanje i želite podsjetiti sve oglašivače čiji je saldo ispod 5 USD da se nadoplate. Sve što trebate učiniti je napisati skriptu koja provjerava stanje svih oglašivača, a kada je ispod 5 USD, poslat će obavijest na broj mobilnog oglašivača ili e -poštu. Zatim postavite cron posao za pokretanje skripte svakih 5 do 10 minuta ili svaki sat.

Postoje mnoge druge upotrebe cron poslova u Linuxu.



U ovom članku ću vam pokazati kako pokrenuti cron poslove svake minute na Linuxu. Za demonstraciju ću koristiti Debian 9 Stretch. Ali možete koristiti bilo koju modernu distribuciju Linuxa po svom izboru. Započnimo.



Na Linuxu ne morate biti korijen kako biste pokrenuli cron poslove. Cron poslove možete pokrenuti kao bilo koji korisnik. Svaki korisnik na Linuxu može koristiti crontab datoteku za pokretanje vlastitog skupa cron poslova.





Prema zadanim postavkama, korisnik nema crontab datoteku na Linuxu. Možete stvoriti crontab datoteku sa sljedećom naredbom:

$crontab-I



Ako ovu naredbu pokrećete prvi put, od vas bi se trebalo tražiti da odaberete uređivač teksta s popisa. Ja ću izabrati nano , zadani. Možete odabrati onu koja vam se sviđa. Kada završite, pritisnite .

The crontab datoteku treba stvoriti (ako već nije dostupna) i otvoriti je vašim omiljenim uređivačem teksta. Sada možete dodati vlastite cron poslove na kraj ove datoteke, a kad budete zadovoljni, samo je spremite i izađite iz uređivača teksta.

Sintaksa izvođenja naredbe svake minute:

Sintaksa od crontab datoteka je sljedeća:

minuta sat dayOfMonth month dayOfWeek naredbaToRun

Ovdje,

  • minuta Može biti 0 do 59 .
  • sat također može biti 0 do 59 .
  • danOmjesec 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 to napisati u crontab datoteku na sljedeći način:

* * * * *commandToRun

Posao Crob svake minute:

Sada kada znamo teorije, dodajmo jednostavan scenarij mjerač vremena.sh prema crontab datoteku i vidjeti kako njome upravljati.

U mjerač vremena.sh script, imam samo sljedeće redove kodova. Sve što čini je stvoriti novu datoteku /home/shovon/bin/timer.log (ako već ne postoji) i dodaje mu izlaz naredbe date.

Sada dodajmo skriptu našoj crontab i pustite ga da radi svake minute sa sljedećim retkom:

* * * * * /Dom/šovon/am/mjerač vremena.sh

Nakon što spremite crontab datoteku i izađite iz uređivača teksta, novi crontab datoteku treba instalirati.

Nakon što prođe minuta, nova datoteka je timer.log je kreiran u željenom direktoriju, kao što možete vidjeti u označenom odjeljku snimke zaslona u nastavku.

Od timer.log log datoteku, očito je da je skripta mjerač vremena.sh trči svake minute.

Hvatanje pogrešaka od Cron poslova:

Da biste uhvatili pogreške iz cron posla, možete poslati pogreške a greška.log datoteku i normalne izlaze u access.log datoteku na primjer. Naravno, datotekama možete dati bilo koje ime.

Da bih to pokazao, izmijenio sam svoj scenarij mjerač vremena.sh malo. Sada se greške šalju na greška.log datoteku u / home / shovon / bin direktorij i izlazi se šalju u access.log u / home / shovon / bin imenik.

Isprva /tmp/i_must_be_here datoteka ne postoji, pa mi se prikazuje pogreška u greška.log datoteku kao što vidite.

The access.log datoteka je trenutno prazna.

Sada ću stvoriti datoteku /tmp/i_must_be_here

I kao što vidite, izlaz je u access.log datoteku sada.

Ako želite, možete preusmjeriti izlaz i pogreške u istoj datoteci na sljedeći način:

Kao što vidite, izlazi STDIN i STDERR šalju se na out.log datoteka.

Uvjerite se da je zadnji posao završen prije ponovnog izvođenja posla:

Da bi ovo funkcioniralo, možete stvoriti privremenu datoteku neposredno nakon početka posla i ukloniti je neposredno prije završetka. Tada možete provjeriti postoji li privremena datoteka prije pokretanja posla. Ako se to dogodi, možete izaći iz posla i pokrenuti ga samo kada privremena datoteka nije dostupna.

Ova jednostavna skripta čini upravo to.

Kao što vidite, mjerač vremena.brz datoteka je stvorena.

Čitajući access.log datoteka dokazuje da se cron posao ne izvodi prije nego što se prethodni cron posao dovrši. Kao što vidite, radio je u 01:32:01, a sljedeći put trebao je raditi u 01:33:01, ali nije. Umjesto toga, trčao je u 01:35:01, otprilike 3 minute kasnije.

Organiziranje Cron Job izlaza za jednostavno otklanjanje pogrešaka:

Možete lijepo oblikovati izlaze kako biste olakšali otklanjanje pogrešaka u poslu s cronom.

Primjer kako se to može učiniti dat je u sljedećoj skripti.

Kao što vidite, izlazi, pogreške i poruke o uspjehu lijepo su ispisani u datoteci dnevnika.

Možete učiniti nevjerojatne stvari s cron poslovima i shell skriptama. Ovdje sam demonstrirao neke od ideja. Ali nebo je vaša granica. Slobodno eksperimentirajte sa svim idejama koje imate. Hvala što ste pročitali ovaj članak.