Outils pour utilisateurs

Outils du site


Panneau latéral

linux:crontab (lu 33928 fois)

Ceci est une ancienne révision du document !


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)
  • * : à chaque unité
  • 5,8 : les unités 5 et 8
  • 2-5 : les unités de 2 à 5
  • */3 : toutes les 3 unités
  • 10-20/3 : toutes les 3 unités, entre la dixième et la vingtième (10, 13, 16, 19)

Raccourcis

  • @reboot
  • @yearly ou @annually
  • @monthly
  • @weekly
  • @daily
  • @midnight
  • @hourly

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

Par défaut, le cron s’édite avec vim, mais il arrive que nano se lance… En faite, cron utilise l’editeur qui est définit par le lien symbolique /etc/alternatives/editor

Il suffit de recréer le lien pour remettre vim comme éditeur.

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

Sinon la méthode conventionnel

$ 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é :

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

  • * * * * /bin/echo `date +\%Y\%m\%d_\%H\%M\%S` » /tmp/crontab.log

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
linux/crontab.1468919146.txt.gz · Dernière modification: 19-07-2016 11:05 de edmc73