Crontab

Installation

sudo apt-get install cron
  • Pour être autorisé à utiliser la commande crontab, il faut que l'utilisateur soit présent dans le groupe cron.
  • Les fichiers /etc/cron.allow et /etc/cron.deny permettent de définir les droits d'utilisation sur crontab.

Lister les tâches de l'utilisateur courant

crontab -l

Supprimer toutes les actions du fichier crontab

crontab -r

Editer les actions du fichier crontab avec son éditeur préféré

export EDITOR=nano
crontab -e

Syntaxe d'une action

# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  *  user command to be executed

Exemples d'actions

Exécuter un script tous les jours à 22h et sauvegarder le retour dans un fichier

00 22 * * * /root/scripts/sauvegarde.sh >> sauvegarde.log

Exécuter un script toutes les heures

00 */1 * * * /usr/sbin/ntpdate fr.pool.ntp.org

Exécution d'une commande toutes les minutes uniquement les lundis

* * * * 1 /root/script/commandes-du-lundi.sh

Exécution d'une commande une fois par an à une heure précise (ici le 25 décembre à 00h15)

15 00 25 12 * echo "Le père Noël est passé !"

Exécuter chaque jour, de chaque mois à 2:15 la commande eix-sync

15 02 * * * /usr/bin/eix-sync

Envoi de mail

Par défaut, cron envoie un message à l'utilisateur qui a planifié sa tâche. Pour ne pas envoyer de façon automatique ce message à l'utilisateur (ou utilisateur@domaine.ext si un agent tel que postfix a été configuré) il faut indiquer sur la première ligne du crontab -e.

MAILTO=""

Raccourcis

  • @reboot # se lance au boot avec les droits utilisateurs, bien commode
  • @yearly
  • @annually
  • @monthly
  • @weekly
  • @daily
  • @midnight
  • @hourly

Recharger la configuration

sudo service cron reload