Juste un petit mémo.
minute heure jour(1-31) mois(1-12) journée(0=dimanche, 1=lundi ... 6=samedi, 7=dimanche)
Raccourcis
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
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’é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
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
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