Hvordan planlegge en Cron -jobb å løpe den siste dagen i hver måned

Hvordan planlegge en Cron -jobb å løpe den siste dagen i hver måned
CRON -verktøyet er et nyttig verktøy for å automatisere oppgaver for å kjøre for en bestemt dato og klokkeslett. For eksempel kan du automatisere en jobb for å løpe hver siste dag i måneden på et gitt tidspunkt. Å automatisere oppgaver er noe du ikke kan gi fra deg, spesielt som administrator. Det kan være en sikkerhetskopi du trenger å lage for å kjøre forskjellige skript. For å unngå å glemme å kjøre skript, er det beste alternativet å endre crontab -filen og planlegge Cron -jobber, som vil kjøre uten inngrep.

Denne guiden presenterer hvordan du kan lage en Cron -jobb, spesielt en som utfører den siste dagen i hver måned.

Arbeide med Cron Jobs

Du må opprette en crontab -fil for den gitte brukeren for å opprette en Cron -jobb i Linux, Unix eller MacOS. De crontab Filen inneholder tabeller med fem felt der du kan spesifisere datoen og klokkeslettet for Cron -jobben og hele veien til skriptet eller kommandoen for å kjøre.

Syntaksen til en crontab -fil er som vist:

Minutt time date_of_month month day_of_week kommando/skript

Bruk kommandoen nedenfor for å åpne crontab -filen:

$ crontab -e

Her har vi åpnet en crontab -fil for den nåværende brukeren. Hvis du trenger å planlegge jobben for en bestemt bruker, bruk syntaks nedenfor.

$ crontab -e -u

Med crontab -filen din åpnet, kan du legge til Cron -jobben din nederst.

For eksempel, hvis vi trenger å lage en Cron -jobb som utfører hver første dag Av hver måned vil Cron -jobben være som vist:

$ 10 10 1 * */PATH/TO/SCRIPT.sh

Ovennevnte skaper en Cron -jobb som utfører hver 10:10 Hver måned den første dagen.

Planlegg Cron Job den siste dagen i hver måned

Å bestemme den siste dagen i måneden kan være utfordrende som noen måneder har 28, 29, 30, eller 31 Som siste dato. Dessuten feltet for DAG_OF_MONTH Tar en bestemt dag og å gi den en liste over mulige dager vil utføre på en feil dag.

Trikset er å spesifisere en kommando som sjekker om dagen etter er den første dagen i måneden. I så fall betyr det at den nåværende dagen er den siste i den måneden, og at Cron -jobben kan utføre.

Kommandoen nedenfor sjekker og returnerer morgendagens dato:

$ dato +%d -d i morgen

Ved å bruke det samme konseptet kan vi opprette en betingelse som hvis morgendagens dato kommer tilbake som 01-noe som betyr at det er den første dagen, da Cron-jobben som skal utføres.

For eksempel kan vi spesifisere kommandoen for å gjenspeile en gitt utgang og bekrefte at den vil kjøres når den blir lagt til Crontab -filen. La oss endre kommandoen over som vist nedenfor:

$ [“$ (Date +\%d -d i morgen)” = “01”] && ekko “Tommorow er 1.”

I stedet for at kommandoen viser utdata for å bekrefte at morgendagen er den første dagen i måneden, kan vi stille den til å kjøre Cron -jobben vår.

Den nye kommandoen ville være:

$ 30 13 28-31 * * [“$ (dato +\%d -d i morgen)” = “01”] &&/Home/Kyle/Linuxhint.sh

Cron -jobben ovenfor ville løpe hver 13:30 av hver siste dag i måneden. Enten den siste dagen er 28,29, 30 eller 31, vil den utføre det spesifiserte skriptet.

Merk at vi viser mulige datoer for hver siste dag i måneden og fortsetter med å gi kommandoen som sjekker at hvis dagen etter er den første dagen i neste måned, så er den inneværende dag den siste i måneden. Når den er bekreftet, utfører den deretter skriptet.

Konklusjon

Denne guiden tilbød en praktisk guide for hvordan du planlegger en hvis du satt fast på å planlegge en Cron-jobb som kjører hver siste dag i hver måned. Vi har sett hvordan vi skal bestemme den siste dagen i en måned og planlegge en Cron -jobb.