Crontab – Basis brug

Skrevet af: Patrick Kerwood

Med crontab kan du execute shell scripts eller Linux kommandoer på et specifik tidspunkt.
For eksempel kan du tage backup, ændre rettigheder eller andre kører andre custom made scripts, hver time, hver dag eller 1 gang om måneden.

Start crontab

crontab -e Din crontab skulle gerne åbne i en text editor og du kan starte med at smide linjer i bunden af den.
Crontab er bygget op på følgende måde.
(Minuter) (Timer) (Dag-på-måneden) (måned) (Dag-på-ugen) kommando
    • Minuter 0-59
    • Timer 0-23
    • Dag på måneden 0-31
    • Måned 1-12
    • Dag på ugen 1-7

Special Tegn

    • Stjerne (*) – Wildcard, betyder at alle min., timer, dage osv. bliver brugt.
    • Skråstreg (/) – Gentage efter X antal enheder. Fx. */5 * * * * er hver 5. time
    • Komma (,) – Separerer enhederne. Fx. * * * * 1,3,5 er her mandag, onsdag og fredag.
    • Bindestreg (-) – Tager alle enheder mellem “-“. Fx. * * * * 1-5 er hver mandag til fredag.
    • Last (L) – I Dag-på-ugen, kan du definere “Last friday”, i én eller flere måneder. * * * * 5L

Der er flere special tegn som jeg ikke vil nævne her.

Eksempler

Kl. 12.05 om natten.
5 0 * * * /sti/til/script

Kl. 14.45 mandag til fredag.
45 14 * * 1-5 /sti/til/script

Kl. 23.30 mandag, onsdag og fredag.
30 23 * * 1,3,5 /sti/til/script

Kl. 13.00 d. 1 i hver måned.
0 13 1 * * /sti/til/script

Kl. 13.00 d. 1 i hver måned.
0 13 1 * * /sti/til/script

Hver 5. minut.
*/5 * * * * /sti/til/script

Hver 5. time.
* */5 * * * /sti/til/script

Hver 5. time, mandag til fredag.
* */5 * * 1-5 /sti/til/script

Sidste fredag i måneden.
* * * * 5L /sti/til/script /sti/til/script kan selvfølgelig erstattes med en Linux kommando. Som Fx.
* */5 * * 1-5 rm /home/user/dir/*

Alle brugere har deres egen crontab. Bemærk at scripts eller kommandoer altid bliver kørt med brugeres rettigheder.
Hvis hvis det er til et job der kræver root rettigheder kan du gøre det med root brugeren.

Prædiefineret tidspunkter

Der er også et sæt prædefineret tidspunkter.

  • @yearly – Bliver kørt én gang om året. (1. Januar, midnat)
  • @monthly – Bliver kørt d. 1. hver måned.
  • @weekly – Bliver kørt midnat hver søndag.
  • @daily – Bliver kørt midnat hver dag.
  • @hourly – Bliver kørt i starten af hver time.
  • @reboot – Bliver kørt ved hver reboot.
@reboot /sti/til/script

For flere detaljer omkring Crontab se http://en.wikipedia.org/wiki/Cron


19 dec 2012   | Alle · Programmer

Leave a Reply