Hvordan lage og administrere Cron-jobber på Linux
automatisere sikkerhetskopieringsoppgaver, katalogrensing, varsler, etc.
Cron-jobber kjører i bakgrunnen og sjekker hele tiden /etc/crontab
-filen, og /etc/cron.*/
og /var/spool/cron/
-kataloger. Cron-filene er ikke ment å redigeres direkte, og hver bruker har en unik crontab.
Hvordan skal du da opprette og redigere cron-jobber? Med crontab-kommandoer. Crontab er metoden du bruker til å opprette, redigere, installere, avinstallere og liste opp cron-jobber.
Kommandoen for å opprette og redigere cron-jobber er den samme og enkel. Og det som er enda kulere er at du ikke trenger å starte cron på nytt etter å ha opprettet nye filer eller redigert eksisterende.
$ crontab -e
Cron-syntaks
Akkurat som det er med alle språk, er det mye enklere å jobbe med cron når du forstår syntaksen og det er 2 formater du bør kjenne til:
A B C D E USERNAME /path/to/command arg1 arg2 OR A B C D E USERNAME /root/backup.sh
Forklaring av cron-syntaksen ovenfor:
- Sv: Minuttområde: 0 – 59
- B: Timeområde: 0 – 23
- C: Dagsområde: 0 – 31
- D: Månedsintervall: 0 – 12
- E: Ukedager: 0 – 7. Fra mandag representerer 0 eller 7 søndag
- BRUKERNAVN: Erstatt dette med brukernavnet ditt
- /path/to/command – Navnet på skriptet eller kommandoen du vil planlegge
Det er ikke alt. Cron bruker 3 operatørsymboler som lar deg spesifisere flere verdier i et felt:
- Asterisk
(*)
: angir alle mulige verdier for et felt - Kommaet
(,)
: angir en liste over verdier - Dash
(-)
: angir et verdiområde - Separator
(/)
: angir en trinnverdi
Nå som du kjenner Crons syntaks og operatorer, la oss se noen cron-eksempler.
Eksempler på Cron-jobber
Det første trinnet for å kjøre cron-kommandoer er å installere crontab med kommandoen:
# crontab -e
Kjør /root/backup.sh
kl. 03.00 hver dag:
0 3 * * * /root/backup.sh
Kjør script.sh
kl. 16.30 den andre i hver måned:
30 16 2 * * /path/to/script.sh
Kjør /scripts/phpscript.php
kl. 22.00 i løpet av uken:
0 22 * * 1-5 /scripts/phpscript.php
Kjør perlscript.pl
23 minutter etter midnatt, 02.00 og 04.00, hver dag:
23 0-23/2 * * * /path/to/perlscript.pl
Kjør Linux-kommando kl 04:05 hver søndag:
5 4 * * sun /path/to/linuxcommand
Cron-alternativer
Liste cron-jobber.
# crontab -l OR # crontab -u username -l
Slett alle crontab-jobber.
# crontab -r
Slett Cron-jobb for en bestemt bruker.
# crontab -r -u username
Strenger i Crontab
Strenger er blant utviklerens favoritt ting fordi de bidrar til å spare tid ved å eliminere repeterende skriving. Cron har spesifikke strenger du kan bruke for å lage kommandoer raskere:
@hourly
: Kjør én gang hver time, dvs. 0 * * * *@midnight
: Kjør én gang hver dag, dvs. 0 0 * * *@daily
: samme som midnatt@ukentlig
: Kjør én gang hver uke, dvs. 0 0 * * 0@monthly
: Kjør én gang hver måned, dvs. 0 0 1 * *@årlig
: Kjør én gang hvert år, dvs. 0 0 1 1 *@årlig
: samme som @årlig@reboot
: Kjør én gang ved hver oppstart
For eksempel, dette er hvordan du sikkerhetskopierer systemet hver dag:
@daily /path/to/backup/script.sh
På dette tidspunktet har du alt du trenger for å opprette og administrere systemoppgaver ved hjelp av Cron. Du kan nå begynne å sette opp og vedlikeholde flere miljøer ved å bruke planlagte kommandoer.
Hvor mye Cron-bruker er du? Og er det noen detaljer du kan bidra med i artikkelen? Diskusjonsboksen er nedenfor.
Når du forstår nok om hvordan Crontab fungerer, kan du bruke disse smarte Crontab-generatorverktøyene til å generere crontab-linjer gratis.
Du kan også lese Ubuntus artikkel om hvordan du bruker Cron her. Den har ressurser som du kan finne nyttige.