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

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

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.

  1. Var 16:e minut skall /opt/rss_mixer.rb köras
  2. Varje gång klockan är en minut över heltime körs ~/src/ruby/nginx_release_feed.rb
  3. Var 3:e minut körs ruby /opt/ftp_status.rb
  4. Varje dag, vid midnatt, körs ~/src/ruby/copy_rdoc.rb-scriptet
  5. Då maskinen startas om, kommer mongrel_rails start -p 8181 -d kö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.