Crontab i Linux

Crontab i Linux
Med bruk av nye teknologier, ønsker vi at alt skal automatiseres inkludert datasystemene våre. For eksempel, som systemadministrator, kan det hende at vi vil at sikkerhetskopien skal kjøres hver natt 02:00. Så hva er formålet med datamaskiner hvis vi må våkne hver dag klokka 02.00 og kjøre kommandoene manuelt for å sette i gang sikkerhetskopien. Det skal være en måte som ber systemet automatisk kjøre en sikkerhetskopi på et bestemt tidspunkt. Heldigvis tilbyr Linux OS et Cron -verktøy som tillater automatisering av oppgaver i en bestemt periode.

Cron er et effektivt og populært kommandolinjeverktøy som brukes til å planlegge et bredt spekter av oppgaver på et spesifikt tidspunkt uten brukerinteraksjon. De planlagte oppgavene er kjent som Cron Jobs mens Crontab er listen over filen som inneholder Cron -jobbene.

I denne artikkelen vil vi forklare med forskjellige eksempel på at du kan redigere og bruke CRONTAB -fil for å planlegge oppgaver i Debian 10 -systemet.

Cron kan brukes til å automatisere oppgaver i følgende scenarier:

  • Kjøreplan sikkerhetskopier,
  • Kontrollere diskplass med et bestemt intervall,
  • Kjører automatisk vedlikehold,
  • Fjern med jevne mellomrom uønskede filer,
  • Kjører nettverksdiagnostisk

Syntaks

Det er lettere å jobbe med Cron, når du først har forstått syntaks. Den generelle syntaksen for å bruke Cron er:

* * * */PATH/TO/Skript.sh

Hvert av feltene tilsvarer følgende:

Minutt (0-59) time (0-24) DAY_OF_THE_MONTH (1-7) Month_of_the_year (1-12)
DAY_OF_THE_WEEK (0-6) Kommando

Installere cron

Cron kommer forhåndsinstallert i Debian 10. Imidlertid, hvis det mangler i systemet ditt, kjører du følgende kommando for å installere det:

$ sudo apt install cron

Se crontab

For å se Crontab -filen, bruk følgende kommando:

$ crontab -l

For å se CRONTAB -fil for en bestemt bruker, bruk følgende kommando:

$ sudo crontab -u bruker -l

Rediger crontab

For å redigere crontab -filen til den nåværende brukeren:

$ crontab -e

For å redigere crontab -filen til en bestemt bruker:

$ sudo crontab -u bruker

Hvis du redigerer Crontab -filen for første gang, blir du bedt om å velge en redaktør:

Når du har valgt redaktøren, vises følgende vindu.

For eksempel vil du kjøre et backup -skript som heter “Backup.SH ”som ligger på Documents Directory daglig klokka 02.00. For å gjøre det, må du legge til følgende linje i Crontab -filen:

0 2 * * * /Dokumenter /sikkerhetskopi.sh

I vinduet ovenfor kan du legge til Cron -jobbene en etter en. Når du er ferdig, lagrer du og avslutter filen etter at alle Cron -jobbene automatisk kjøres med deres spesifiserte intervall.

Fjern crontab

For å fjerne crontab -filen, skriv inn følgende kommando i terminalen:

$ crontab -r

La oss nå gå gjennom en serie eksempler på Cron -jobber på en Linux -maskin.

Kjør en Cron -jobb hvert minutt

For å utføre en Cron -jobb hvert minutt, legg til følgende linje i Crontab -filen:

* * * * */bane/til/skript.sh

Kjør en Cron -jobb etter hvert 10. minutt

For å planlegge en Cron -jobb som skal utføres etter hvert 10. minutt, kan du legge til følgende linje i Crontab -filen.

*/10 * * * */sti/til/skript.sh

Kjør en Cron -jobb på bestemte måneder

Å planlegge en Cron -jobb å utføre på bestemte måneder E.g. Mars, august, desember, legg til Cron -jobben i Crontab -filen på følgende måte:

* * * Jan, mai, august */sti/til/skript.sh

Kjør en Cron -jobb på utvalgte dager

Hvis du ønsker at Cron -jobben din skal henrettes på utvalgte dager, la oss anta søndag og fredag ​​klokka 17.00, skal det se ut som følgende.

0 17 * * Sol, fri/sti/til/manus.sh

Kjør en Cron -jobb daglig på et bestemt tidspunkt

For å planlegge en Cron -jobb som skal utføres daglig på et bestemt tidspunkt, la oss si klokka 03.00, legg til denne linjen i Crontab -filen.

0 3 * * */sti/til/skript.sh

Kjør en Cron -jobb på en bestemt dag

For å planlegge en Cron -jobb som skal utføres på en bestemt dag, la oss si hver søndag, legg til denne linjen i crontab -filen din.

0 0 * * Sol/sti/til/skript.sh

Jobben vil løpe klokka 00:00 hver søndag.

Kjør flere oppgaver i en enkelt Cron -jobb

For å planlegge flere oppgaver i en enkelt Cron -jobb, legg til alle skript i Crontab -filen din ved å skille dem med en semikolon.

* * * * */sti/til/script1.sh; /sti/til/script2.sh

Kjør en Cron -jobb på hver ukedag

For å planlegge en Cron -jobb som skal utføres på hver dag i uken som er fra mandag til fredag, må du legge til denne linjen i Crontab -filen.

0 0 * * 1-5/sti/til/skript.sh

Jobben vil løpe klokka 00:00 hver ukedag.

Kjør en Cron -jobb to ganger om dagen

Å planlegge en jobb for å løpe to ganger om dagen e.g. Klokka 06.00 og 15.00 må du legge til denne linjen i Crontab -filen:

0 6,15 * * */sti/til/skript.sh

Kjør en Cron -jobb hver time

For å planlegge en Cron -jobb for å utføre hver time til minutt 0, må du legge til denne linjen i Crontab -filen:

0 * * * */bane/til/skript.sh

For eksempel, hvis dagens tid er kl. 14.00, kjøres jobben kl. 15.00, 16:00 og så videre.

Kjør en Cron -jobb etter hver 3. time

For å planlegge en Cron -jobb som skal kjøres etter hver 3. time på minutt 0, må du legge til denne linjen i Crontab -filen:

0 */3 * * */sti/til/skript.sh

For eksempel, hvis dagens tid er kl. 14.00, kjøres jobben kl. 17.00, 20:00 og så videre.

Kjør Cron Job kl. 16.00 den første av hver måned

For å planlegge en jobb for å kjøre dagen først hver måned klokken 16.00, må du legge til denne linjen i CRONTAB -filen din:

0 16 1 * */sti/til/skript.sh

Strenger i crontab

Du kan også bruke følgende strenger i stedet for de lange repeterende kommandoene.

@time- løp cron jobb hver time jeg.e. “0 * * * *“
@midnatt- løp cron jobb hver dag jeg.e. “0 0 * * *“
@daglig- samme som midnatt
@Weekly- Run Cron Job hver uke, jeg.e. “0 0 * * 0”
@Månedlig- Run Cron Job hver måned jeg.e. “0 0 1 * *“
@årlig- kjør Cron Job hvert år jeg.e. “0 0 1 1 *“
@årlig- samme som @annuelt
@omstart- kjør Cron Job ved hver støvel

For eksempel, for å kjøre Cron -jobben hver dag i det første minutt og den første timen, legg til følgende linje:

@Daily/Path/To/Script.sh

For eksempel for å kjøre Cron -jobben hver gang serveren startes på nytt:

@Reboot/Path/To/Script.sh

Det er alt det er for det! I denne artikkelen har vi lært hvordan vi automatiserer forskjellige oppgaver som bruker Crontab i Debian -systemet. Ved å bruke eksemplene ovenfor, kan du planlegge enhver form for jobb for å starte uten brukerinteraksjon.