Crontab
Crontab är ett program för att installera och hantera de tabeller som styr hur cron arbetar, cron är en {{daemon}} som kan köra program åt användaren vid olika tidpunkter automatiskt. Säg att man vill generera en RSS-feed varje natt, då är cron ett utmärkt verktyg för detta.
För att kunna ändra i tabellerna, konfigurationsfilen, exekeverar man crontab med olika växlar.
Alternativ
crontab -eEditera din crontabcrontab -lLista det som finns i din crontabcrontab -rRadera din crontab
Normalt kommer editorn {{vi}} användas för att ändra i filen, men detta kan användaren själv välja genom att definiera variabeln EDITOR, alternativ kan vara {{emacs}} eller {{nano}}.
Syntax
Crontab-filen är uppbyggd av en tabell, där varje kolumn är följande:
minute hour day month weekday command
- Minute – Minutes after the hour (0-59).
- Hour – 24-hour format (0-23).
- Day – Day of the month (1-31).
- Month – Month of the year (1-12).
- Weekday – Day of the week. (0-6; the 0 refers to Sunday).
Sedan definieras de kommandon man vill köra som rader i tabellen.
Det finns även förkortningar för de vanligaste uppgifterna, då räcker det att på en rad skriva:
keywoard command
Förkortningar
@reboot Run once, at startup
@yearly Run once a year, "0 0 1 1 *"
@annually (same as @yearly)
@monthly Run once a month, "0 0 1 * *"
@weekly Run once a week, "0 0 * * 0"
@daily Run once a day, "0 0 * * *"
@midnight (same as @daily
@hourly Run once an hour, "0 * * * *"
Exempel
SHELL=/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
#minute hour mday month wday command
#
*/16 * * * * ruby /opt/rss_mixer.rb
1 * * * * ruby ~/src/ruby/nginx_release_feed.rb
*/3 * * * * ruby /opt/ftp_status.rb
# Rdoc
@daily (cd ~/www/vhosts/doc.duh.se; ruby ~/src/ruby/copy_rdoc.rb >/dev/null)
# Webapps
@reboot (cd ~/webapps/imum.net; mongrel_rails start -p 8181 -d >/dev/null)
I detta exempel finns 5 uppgifter installerade.
- Var 16:e minut skall
/opt/rss_mixer.rbköras - Varje gång klockan är en minut över heltime körs
~/src/ruby/nginx_release_feed.rb - Var 3:e minut körs
ruby /opt/ftp_status.rb - Varje dag, vid midnatt, körs
~/src/ruby/copy_rdoc.rb-scriptet - Då maskinen startas om, kommer
mongrel_rails start -p 8181 -dköras vid boot
Värt att notera är att först definieras två variabler, dels vilket skal som gäller, samt vilka sökvägar crontab skall leta efter binärerna. Genom att exekevera echo $PATH i det interaktiva skalet fås den PATH som ni troligtvis vill använda här.
Mer information finns i {{manualsidan}} för crontab, exekevera man 1 crontab för information kring själva programmet, och man 5 crontab för syntax-information.