Kjør en Cron -jobb hvert minutt

Kjør en Cron -jobb hvert minutt
Hvis du vil kjøre et program eller skript i bakgrunnen på Linux, er Cron Job veldig viktig. Ved hjelp av Cron Jobs kan du utføre et program eller skript i bakgrunnen etter et gitt tidsintervall.

La oss se på noen av de virkelige eksemplene på Cron -jobber.

  • La oss si, du eier et nettsted og du vil sende alle brukerne av nettstedet ditt en e -post hver dag. Alt du trenger å gjøre er å skrive en e -post som sender skript og setter opp en Cron -jobb for å kjøre det skriptet hver dag.
  • La oss si, du eier et reklamebyrå, og du vil minne alle annonsører hvis balanse er under 5 $ for å lade opp. Alt du trenger å gjøre er å skrive et skript som sjekker balansen mellom alle annonsørene, og når det er under 5 $, vil det sende et varsel til annonsørens mobilnummer eller e -post. Sett deretter opp en Cron -jobb for å kjøre manuset hvert 5. til 10. minutt, eller hver time.

Det er mange andre bruksområder av Cron -jobber i Linux.

I denne artikkelen vil jeg vise deg hvordan du skal kjøre Cron -jobber hvert minutt på Linux. Jeg vil bruke Debian 9 Strekk for demonstrasjonen. Men du kan bruke hvilken som helst moderne Linux -distribusjon etter ditt valg. La oss komme i gang.

Grunnleggende om crontab:

På Linux trenger du ikke være det rot For å drive Cron Jobs. Du kan kjøre Cron Jobs som enhver bruker. Hver bruker på Linux kan bruke en crontab fil for å kjøre sitt eget sett med Cron Jobs.

Som standard har en bruker ikke en crontab fil på Linux. Du kan opprette en crontab fil med følgende kommando:

$ crontab -e

Hvis du kjører denne kommandoen for første gang, bør du bli bedt om å velge en tekstredigerer fra listen. Jeg vil velge Nano, Standard en. Du kan velge den du liker. Når du er ferdig, trykk .

De crontab Filen skal opprettes (hvis ikke tilgjengelig allerede) og åpnes med din favoritt tekstredigerer. Nå kan du legge til dine egne Cron -jobber på slutten av denne filen, og når du først er lykkelig, bare lagre den og gå ut av tekstredigereren.

Syntaks for å kjøre en kommando hvert minutt:

Syntaksen til crontab Filen er som følger:

Minutt time dag av month måned dag avweek commandtorun

Her,

  • minutt kan være 0 til 59.
  • time kan også være 0 til 59.
  • DayOfmonth kan være 1 til 31.
  • måned kan være 1 til 12.
  • ukedag kan være 0 til 7. 0 og 7 betyr søndag, 1 betyr mandag, 2 betyr tirsdag og så videre.

Å kjøre a CommandTorun kommando hvert minutt, du bør skrive det i crontab fil som følger:

* * * * * CommandTorun

Kjører en crobjobb hvert minutt:

Nå som vi kjenner teoriene, la oss legge til et enkelt manus Timer.sh til crontab fil og se hvordan du administrerer det.

I Timer.sh manus, jeg har bare følgende linjer med koder. Alt det gjør er å lage en ny fil /Hjem/Shovon/Bin/Timer.Logg (Hvis ikke eksisterer allerede) og legger til utdata fra datakommandoen til den.

La oss nå legge skriptet til vårt crontab og la det kjøre hvert minutt med følgende linje:

* * * * */Hjem/Shovon/Bin/Timer.sh

Når du lagrer crontab fil og gå ut av tekstredigereren, den nye crontab Filen skal installeres.

Etter at et minutt er bestått, er en ny fil Timer.Logg opprettes i ønsket katalog som du kan se i den merkede delen av skjermdumpen nedenfor.

Fra Timer.Logg loggfil, det er åpenbart at skriptet Timer.sh Kjører hvert minutt.

Fanger feil fra Cron Jobs:

For å fange feil fra en Cron -jobb, kan du sende feilene til en feil.Logg fil og normale utganger til adgang.Logg Fil for eksempel. Selvfølgelig kan du navngi filene hva du vil.

For å demonstrere dette, endret jeg skriptet mitt Timer.sh en liten bit. Nå sendes feilene til feil.Logg fil i /Hjem/Shovon/Bin katalog og utgangene sendes til adgang.Logg i /Hjem/Shovon/Bin katalog.

Først /tmp/i_must_be_here filen eksisterer ikke, så jeg får feilen i feil.Logg fil som du kan se.

De adgang.Logg Filen er tom for øyeblikket.

Nå skal jeg opprette filen /tmp/i_must_be_here

Og som du kan se, er utdataene i adgang.Logg fil nå.

Hvis du vil, kan du omdirigere utdataene og feilene i samme fil som følger:

Som du ser blir stdin- og stderr -utgangene sendt til ute.Logg fil.

Sørg for at den siste jobben var ferdig med å løpe før du kjører jobben igjen:

For at dette skal fungere, kan du opprette en midlertidig fil rett etter at jobben starter og fjerner den rett før den er ferdig. Da kan du sjekke om den midlertidige filen eksisterer før du starter jobben. Hvis det gjør det, kan du gå ut av jobben og kjøre jobben bare når den midlertidige filen ikke er tilgjengelig.

Dette enkle manuset gjør nettopp det.

Som du kan se, Timer.PID filen opprettes.

Leser adgang.Logg Filen beviser at Cron -jobben ikke kjører før den forrige Cron -jobben er ferdig. Som du kan se, kjørte den kl 01:32:01, og neste gang skulle den ha kjørt 01:33:01, men det gjorde det ikke. I stedet kjørte den kl 01:35:01, omtrent 3 minutter senere.

Organisering av Cron Job -utganger for enkel feilsøking:

Du kan formatere utgangene pent for å gjøre Cron -jobben din enklere å feilsøke.

Et eksempel på hvordan det kan gjøres er gitt i følgende skript.

Som du kan se, skrives utgangene, feilene og suksessmeldingene pent i loggfilen.

Du kan gjøre fantastiske ting med Cron -jobber og skallskript. Jeg demonstrerte noen av ideene her. Men himmelen er din grense. Eksperimentere med alle ideer du har. Takk for at du leste denne artikkelen.