Table des matières

CronTab

Juste un petit mémo.

Notation

minute heure jour(1-31) mois(1-12) journée(0=dimanche, 1=lundi ... 6=samedi, 7=dimanche)

Raccourcis

Mail

Le cron envoie des mails au propriétaire de la commande lorsqu’une tache génère du texte en sortie standard.

J’ai beau remplir le fichier /etc/aliases pour dire d’envoyer les mails du root (par exemple) vers mon mail perso mais rien n’y fait.

Il faut donc éditer le fichier /etc/crontab et rajouter la variable

MAILTO=toto@domain.com

Editer le cron

La commande suivante permet d’éditer le cron

crontab -e

La commande suivante permet d’afficher le contenu du cron

crontab -l

Editeur par défaut

Par défaut, le cron s’éditait avec vim, mais de nos jours il s’édite avec NANO … En faite, cron utilise la variable $EDITOR. En 1er lieu, essayez la méthode classique :

$ update-alternatives --config editor
Il existe 4 choix pour l'alternative editor (qui fournit /usr/bin/editor).

  Sélection   Chemin              Priorité  État
------------------------------------------------------------
  0            /bin/nano            40        mode automatique
  1            /bin/ed             -100       mode manuel
  2            /bin/nano            40        mode manuel
  3            /usr/bin/vim.basic   30        mode manuel
* 4            /usr/bin/vim.tiny    10        mode manuel

Appuyez sur <Entrée> pour conserver la valeur par défaut[*] ou choisissez le numéro sélectionné :

Sinon essayez cette méthode ou il suffit de recréer le lien pour remettre vim comme éditeur.

rm /etc/alternatives/editor
ln -s /usr/bin/vim /etc/alternatives/editor

Si ça ne marche toujours pas, ajoutez dans votre ~/.bash_profile ceci

export EDITOR=vim

Sortie ..

Pour ne pas recevoir de message par mail ou dans les logs la sortie standard d’un script, il suffit d’ajouter > /dev/null

00 22 * * * /home/users/script > /dev/null

La méthode précédente laisse passer la sortie d’erreur dans les log.

Si vous ne voulez pas non plus avoir de trace d’erreur, ajouter 2>&1 qui permet de rediriger la sortie d’erreur sur la sortie standard qui elele même sera redirigé vers le néant.

00 22 * * * /home/users/script > /dev/null 2>&1

Si ne voulez que les erreurs dans un log, redirigé la sortie d’erreur dans un fichier de log

00 22 * * * /home/users/script > /dev/null 2> /var/log/fichier.log

Variable

Pour passer la date dans un nom de fichier à créer

Notez que les % sont échappés par un \

Sinon on peut définir une variable

DATEVAR=date +%Y%m%d_%H%M%S
* * * * * /bin/echo $($DATEVAR) >> /tmp/crontab.log