Hvordan sette opp Cron -jobber i Linux

Hvordan sette opp Cron -jobber i Linux
Automatisering og planlegging av gjentatte oppgaver på stasjonære maskiner og servere forbedrer produktiviteten og kutter ned manuell intervensjon og overvåking. Tallrike slike verktøy er tilgjengelige for Linux, og en av de mest brukte blant dem er “Cron”.

Denne artikkelen vil forklare planleggingsoppgaver og kjøre skript med jevne mellomrom ved hjelp av Cron Jobs.

Hva er Cron?

Cron er et oppgaveplanleggingsprogram som kjører i bakgrunnen som en prosess. Det kan brukes til å kjøre visse jobber som planlegges med jevne mellomrom ved hjelp av det forhåndsdefinerte reglene for regler. Cron kommer forhåndsinstallert på de fleste Linux -distribusjoner eller tilgjengelig i depotene som skal installeres manuelt.

Cron forhåndsinnstillinger

Cron på Ubuntu kommer med et sett med forhåndsdefinerte planleggere. Du kan sjekke dem ved å kjøre kommandoen nedenfor:

$ ls /etc /cron.*

Vanligvis er disse mappene “/etc/cron.time ”,“/etc/cron.daglig ”,“/etc/cron.månedlig ”og“/etc/cron.ukentlig".

Bare legg de ønskede skriptene i en av disse mappene for å kjøre automatiserte oppgaver hver time, daglig, månedlig eller ukentlig.

Merk at Cron bruker “/bin/sh” -skall som standard. Hvis du vil bruke “/bin/bash” som skallet i cron -skript, må du bruke “!#/bin/bash ”Hashbang øverst i skriptfilen eller definer Shell som“ Shell =/bin/bash ”-variabel i den første linjen i et planlagt bash -skript. Overstyring av "skall" miljøvariabel fungerer også for crontab -redaktør forklart nedenfor.

Ikke alle systemmiljøvariabler kan bli utsatt for Cron -jobbene. Så det er generelt en god idé å manuelt definere viktige miljøvariabler i et skript planlagt av Cron.

Crontab

Crontab lar deg definere dine egne planlagte oppgaver. Du kan bruke den til å konfigurere Cron -tidsplaner som er forskjellige fra de fire standard Cron -forhåndsinnstillingene som er forklart ovenfor.

For å sette en planlagt oppgave i Crontab, lanser du først Crontab -redaktøren ved å bruke kommandoen nedenfor:

$ crontab -e

Nå på slutten av filen kan du legge til en oppføring i følgende format:

minutt time dag måned ukedag/full/sti/til/manus.sh

Hvor:

  • minutt: Enhver verdi i området 0 til 59
  • time: enhver verdi i området 0 til 23, 0 er midnatt
  • Dag: Enhver verdi i området 1 til 31
  • Måned: Enhver verdi i området 1 til 12
  • Ukedag: Enhver verdi i området 0 til 6, 0 er søndag

Crontab -oppføringen nedenfor vil ta et skjermbilde av skrivebordet ditt og lagre det i hjemmekatalogen en gang 15:13 timer 2. mars pluss hver tirsdag i mars klokka 15:13 timer.

13 15 2 3 2 Scrot

For å liste opp alle crontab -oppføringer, bruk kommandoen nedenfor:

$ crontab -l

Flere eksempler

Cron -oppgaver kan best forklares gjennom eksempler, så nedenfor er noen eksempler som med jevne mellomrom vil ta skjermbilder av skrivebordet ditt og lagre dem i hjemmemappen.

Foruten de fem planleggingsvariablene, bruker Cron også noen spesielle streng for å planlegge jobber. Disse strengene er:

  • @Hourly: Jobb kjøres hver time
  • @daily / @midnight: Jobb kjøres hver dag
  • @Weekly: Jobb kjører en gang i uken
  • @monthly: Jobb kjører en gang i måneden
  • @årlig / @anuelt: Jobb kjører en gang i året
  • @Reboot: Jobb kjøres når hver omstart / pålogging

Crontab -oppføringen nedenfor vil ta skjermbilde en gang på hver omstart:

@Reboot Scrot

Du kan erstatte “@Reboot” med alle andre spesielle strenger nevnt ovenfor.

Å bruke et stjerne eller jokertegn i stedet for en av de fem variablene vil gjenta jobb i alle nye forekomster av den variabelen. Oppføringen nedenfor vil ta et skjermbilde hvert minutt:

* * * * * PCROT

Hver time:

0 * * * * PCROT

Hver dag klokka 18:00:

0 18 * * * PCROT

Hver måned på 6. plass klokka 18:00:

0 18 6 * * PCROT

Bruk “/” til å kjøre et skript med et fast periodisk intervall på 30 minutter (kjører hvert 30. minutt):

*/30 * * * * PCROT

Du kan bruke komma -separerte variabler for å definere gjentatt utførelse av skript med jevne mellomrom. Eksemplet nedenfor vil ta et skjermbilde av skrivebordet ditt hver første, 4. og 5. minutt av en ny time.

1,4,5 * * * * PCROT

Verifisere crontab -oppføringer

Det kan være vanskelig å definere crontab -oppføringer. Et alternativ er å bruke en virtuell maskin og logge tidsstempler av et skript som kjører med jevne mellomrom på en Cron -jobb ved å inkludere noe som "Dato" -kommando og omdirigere utdataene til en tekstfil. Imidlertid er en bedre løsning å bruke en av de mange online Cron Jobs -testtjenestene som er tilgjengelige på nettet. Jeg anbefaler å gi Cron Tester nettsted tilgjengelig her.

Konklusjon

Å kjøre Cron Jobs er en utmerket måte å automatisere gjentatte oppgaver på, spesielt på servere. Verktøyet er ekstremt kraftig og tilpassbart. Imidlertid er det viktig å finne ut at din planleggerdefinisjon fungerer riktig, spesielt hvis det er oppdragskritiske oppgaver.