crontabAan de slag met crontab


Opmerkingen

Crontab staat voor cron-tabel. Het is een hulpprogramma dat wordt gebruikt om crons toe te voegen, te bewerken en te verwijderen. Een cron is een opdracht of programma dat volgens een regelmatig schema moet worden uitgevoerd. Bijvoorbeeld: een back-upscript dat elke dag of elk uur wordt uitgevoerd.

Een nieuwe cron maken op ubuntu (of de meeste andere linux os)

U kunt eenvoudig een nieuw cron-item maken

crontab -e
 

op de opdrachtregel. Als het de eerste keer is dat u uw crontab (le) wilt bewerken, wordt u gevraagd om een editor te selecteren:

no crontab for <user> - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /bin/ed
  2. /bin/nano        <---- easiest
  3. /usr/bin/vim.basic
  4. /usr/bin/vim.tiny

Choose 1-4 [2]: 
 

Kies eenvoudig uw editor door de prompt te volgen en uw crontab wordt geopend met een leeg bestand (alleen met enkele toelichtingsregels):

# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
 

Zoals u ziet, staat er al een voorbeeld in de tekst:

0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
 

Dit zou een back-upbestand maken met de naam home.tgz in /var/backups/ . De timing voor deze crontab zou zijn

every monday (first day of week) at 5:00 A.M.
 

Als je die regel als crontab had ingevoerd, hoef je alleen nog maar het crontabbestand op te slaan. Met de nano editor wordt dit bijvoorbeeld gedaan met <Ctrl> + <X> - bevestig vervolgens om op te slaan met Y

Typ gewoon om uw crontab te controleren

crontab -l 
 

in de console.

Wat meer informatie over crontimings die u kunt kiezen:

 # * * * * *  command to execute
 # │ │ │ │ │
 # │ │ │ │ │
 # │ │ │ │ └───── day of week (0 - 6) (0 to 6 are Sunday to Saturday, or use names; 7 is Sunday, the same as 0)
 # │ │ │ └────────── month (1 - 12)
 # │ │ └─────────────── day of month (1 - 31)
 # │ └──────────────────── hour (0 - 23)
 # └───────────────────────── min (0 - 59)
 

Speciale tekens in cronjobs zijn:

Asterisk ( * )

Het sterretje geeft aan dat de cron-expressie overeenkomt met alle waarden van het veld. Als u bijvoorbeeld een asterisk in het 4e veld (maand) gebruikt, wordt elke maand aangegeven.

Slash ( / )

Slashes beschrijven incrementen van bereiken. Bijvoorbeeld 3-59 / 15 in het 1e veld (minuten) geeft de derde minuut van het uur aan en daarna elke 15 minuten. De vorm "* / ..." is gelijk aan de vorm "eerst-laatste / ...", dat wil zeggen een toename over het grootst mogelijke bereik van het veld.

Komma ( , )

Komma's worden gebruikt om items van een lijst te scheiden. Het gebruik van "MON, WED, FRI" in het 5e veld (dag van de week) betekent bijvoorbeeld maandag, woensdag en vrijdag.

Koppelteken ( - )

Koppeltekens definiëren bereiken. Bijvoorbeeld, 2000-2010 geeft elk jaar tussen 2000 en 2010 AD aan.

Procent ( % )

Procenttekens (%) in de opdracht, tenzij deze met backslash () zijn ontsnapt, worden in newline-tekens gewijzigd en alle gegevens na de eerste% worden als standaardinvoer naar de opdracht verzonden.

Installeer crontab op Linux

Debian / Ubuntu

# apt-get update & apt-get -y upgrade
# apt-get install cron
 

Fedora / CentOS

# yum -y update
# yum install vixie-cron
 

Boog

# pacman --noconfirm -Syu
# pacman -S cronie