Sådan redigeres Linux Crontab-filen for at planlægge job

Hvad skal man vide

  • Vis indholdet af crontab med: crontab -l
  • Rediger crontaben med: crontab -e
  • Timing fungerer med: minut, time, dag i måneden, måned, ugedag. Brug en stjerne (*) at køre cron hver dag, time osv.

Denne artikel forklarer, hvordan man bruger cron, som er en dæmon i Linux, der kører processer med jævne mellemrum. Det tjekker visse mapper på et system for scripts til at køre i en række mapper, inklusive /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly og /etc/cron.monthly; der er også en fil kaldet /etc/crontab.

Placer scripts i Cron-mapper

Placer scripts i de relevante mapper for at få dem til at køre med jævne mellemrum. Åbn for eksempel et terminalvindue og kør følgende ls kommando:

ls /etc/cron*

Kommandoen viser de programmer eller scripts, der kører hver time, dagligt, ugentligt og månedligt.

Linux cron liste

Disse mapper er vage. For eksempel, daglige betyder, at scriptet kører én gang om dagen, men du har ingen kontrol over den tid, scriptet kører i løbet af den dag.

Det er her, crontab-filen kommer ind. Ved at redigere crontab-filen kører du et script eller et program på den nøjagtige dato og det tidspunkt, du vil have det til at køre.

Tilladelser

Crontab-kommandoen kræver, at en bruger har tilladelse til at redigere en crontab-fil. Der er to filer, der administrerer crontab-tilladelser: /etc/cron.allow og /etc/cron.deny.

  • Hvis filen /etc/cron.allow eksisterer, skal den bruger, der ønsker at redigere crontab-filen, være opført i denne fil.
  • Hvis cron.allow-filen ikke eksisterer, men der er en /etc/cron.deny-fil, må brugeren ikke eksistere i den fil.
  • Hvis begge filer findes, tilsidesætter filen /etc/cron.allow filen /etc/cron.deny.
  • Hvis ingen af ​​filerne eksisterer, afhænger det af systemkonfigurationen, om en bruger kan redigere crontab.

Rootbrugeren kan altid redigere crontab-filen. Du kan enten bruge su kommandoen for at skifte til root-brugeren eller sudo kommandoen for at køre crontab-kommandoen.

Rediger Crontab-filen

Hver bruger, der har passende tilladelser, kan oprette en crontab-fil. Cron-kommandoen leder efter alle crontab-filer og kører gennem hver fil.

For at kontrollere, om du har en crontab-fil, skal du køre følgende kommando:

crontab -l. 

Hvis du ikke har en crontab-fil, vises meddelelsen ingen crontab for vises, ellers vises din crontab-fil.

Denne funktionalitet er forskellig fra system til system. Nogle gange viser den slet ingenting, og andre gange vises den rediger ikke denne fil.

Linux crontab liste

For at oprette eller redigere en crontab-fil skal du køre følgende kommando:

crontab -e. 

Filen, der åbnes, har en masse information, men den vigtigste del er eksemplet før slutningen af ​​kommentarsektionen (kommentarer er angivet med linjer, der begynder med #).

# m h dom mon dow kommando. 
0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
Linux rediger crontab

Der er seks stykker information, der passer på hver linje i crontab-filen:

  • Minuttet på dagen kommandoen skal køre (m).
  • Den time på dagen kommandoen skal køre (h).
  • Den dag i måneden kommandoen skal køre (dom).
  • Den måned kommandoen skal køre (man).
  • Den dag i ugen kommandoen skal køre (dow).
  • Kommandoen.

For hvert element (undtagen kommandoen) kan du angive et jokertegn. Se på følgende eksempel på crontab-linje:

30 18 * * * tar -zcf /var/backups/home.tgz /home/

Efter 30 minutter, 18 timer og enhver dag, måned og ugedag vil denne crontab-indgang lynlås og tjære hjemmemappen til mappen /var/backups.

I eksemplerne nedenfor skal du erstatte ordkommandoen med den kommando, du vil køre.

For at få en kommando til at køre 30 minutter over hver time, skal du køre følgende kommando:

30 * * * * kommando. 

For at få en kommando til at køre hvert minut efter kl. 18, skal du køre følgende kommando:

* 18 * * * kommando. 

Du skal derfor være forsigtig med at opsætte crontab-kommandoer.

For eksempel:

* * * 1 * kommando. 

Denne kommando kører hvert minut af hver time på hver dag i hver uge i januar.

For at køre en kommando kl. 05.00 den 1. januar skal du indtaste følgende kommando i crontab-filen:

0 5 1 1 * kommando. 

Sådan fjerner du en Crontab-fil

Det meste af tiden vil du ikke fjerne crontab-filen. Du vil dog måske fjerne nogle rækker fra crontab-filen.

For at fjerne din brugers crontab-fil skal du køre følgende kommando:

crontab -r. 

En mere sikker måde at gøre dette på er at køre følgende kommando:

crontab -i. 

Operativsystemet beder om verifikation, før det fjerner crontab-filen.