Outils pour utilisateurs

Outils du site


Panneau latéral

linux:crontab (lu 40700 fois)

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

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

  • * * * * /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.txt · Dernière modification: 27-03-2017 09:51 de edmc73