mardi 11 janvier 2011

Crontab, howto

Syntaxe générale :

*    *    *    *    * command to be executed 

-    -    -    -    - 
|    |    |    |    | 
|    |    |    |    +----- day of week (0 - 6) (Sunday=0) 
|    |    | +------- month (1 - 12) 
|    | +--------- day of month (1 - 31) 
| +----------- hour (0 - 23) 
+------------- min (0 - 59)

Générer un fichier de log :

* * * * * rm toto.txt > /var/log/cron_mv.log

Désactiver l'envoi de mail :

Par défaut, un email est envoyé au user lancant le cronjob. Pour ne pas envoyer de mail :
* * * * * rm toto.txt >/dev/null 2>&1

Variables d'environnement par défaut:

Par défaut, crontab initialise 4 variables d'environnement :
HOME=le repertoire home de l'utilisateur
LOGNAME=id de l'utilisateur
PATH=/usr/bin:/usr/sbin:.
SHELL=/usr/bin/sh 


Variables d'environnement personnalisés:
Deux méthodes

-soit les initialiser dans le script appelé par crontab :

crontab:
* * * * * myscript.sh

myscript.sh:
#!/bin/bash
MYVAR=PROD
LANG=en_US.UTF-8
export MYVAR
export LANG
...
 

-soit les initialiser dans crontab :

crontab:
MYVAR=PROD
LANG=en_US.UTF-8
 
* * * * * myscript.sh

Attention, la valeur de la variable n'est jamais interpretée. Ainsi, PATH = $HOME/bin:$PATH ne fonctionnera pas comme on s'y attendrait.

Aucun commentaire:

Categories