Démarrer avec crontab

Création d’un nouveau cron sur Ubuntu (ou la plupart des autres systèmes d’exploitation Linux)

Vous pouvez créer une nouvelle entrée cron en tapant simplement

crontab -e

sur la ligne de commande. Si c’est la première fois que vous souhaitez modifier votre crontab(le), vous serez invité à sélectionner un éditeur :

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]: 

Choisissez simplement votre éditeur en suivant l’invite, et votre crontab s’ouvrira avec un fichier vide (contenant seulement quelques lignes d’explication commentées) :

# 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

Comme vous pouvez le voir, il y a déjà un exemple d’entrée dans le texte :

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

Cela créerait un fichier de sauvegarde appelé home.tgz dans /var/backups/. Le moment de cette crontab serait

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

Si vous aviez entré cette ligne comme crontab, tout ce que vous aviez à faire maintenant serait de sauvegarder le crontabfile. Par exemple avec l’éditeur nano, cela se fait avec <Ctrl> + <X> - puis confirmez pour enregistrer avec Y.

Pour vérifier votre crontab, tapez simplement

crontab -l 

dans la console.

Quelques informations supplémentaires sur les crotimings que vous pouvez choisir :

 # * * * * *  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)

Les caractères spéciaux dans les cronjobs sont :

Astérisque ( * )

L’astérisque indique que l’expression cron correspond à toutes les valeurs du champ. Par exemple, l’utilisation d’un astérisque dans le 4e champ (mois) indique chaque mois.

Barre oblique ( / )

Les barres obliques décrivent des incréments de plages. Par exemple 3-59/15 dans le 1er champ (minutes) indique la troisième minute de l’heure et toutes les 15 minutes par la suite. La forme “*/…” est équivalente à la forme “premier-dernier/…”, c’est-à-dire un incrément sur la plus grande plage possible du champ.

** Virgule ( , )**

Les virgules sont utilisées pour séparer les éléments d’une liste. Par exemple, l’utilisation de “MON,WED,FRI” dans le 5e champ (jour de la semaine) signifie les lundis, mercredis et vendredis.

Trait d’union ( - )

Les traits d’union définissent des plages. Par exemple, 2000-2010 indique chaque année entre 2000 et 2010 AD, inclus.

Pourcentage ( % )

Les signes de pourcentage (%) dans la commande, sauf s’ils sont échappés avec une barre oblique inverse (), sont remplacés par des caractères de saut de ligne et toutes les données après le premier % sont envoyées à la commande en tant qu’entrée standard.

Installer crontab sous Linux

Debian/Gratuit

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

Fedora/CentOS

# yum -y update
# yum install vixie-cron

Cambre

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