Table des matières

CRON : Plannificateur de tâches : La totale !

Auteur : cmx
Date : 5 janvier 2004


Le service crond :


Fonctionnement de crond :

Normalement crond est lancé automatiquement au démarrage. Nous pouvons cependant le faire démarrer manuellement en allant dans le répertoire “ /init.d ” :

3 commandes possibles :

Lorsque cron s`exécute pour une tâche il inscrit dans un de ses fichiers log certaines données. Ces fichiers se trouvent dans “/var/log/cron/” et sont au nombre de 3 :

Évidemment, au fil du temps le fichier info se garnit et peut prendre de la place inutilement, il faut donc le purger et pourquoi pas le faire avec une tâche crontab ! :-D.


Crontab et ses options :

Au menu, 4 options,


Syntaxe de crontab :

Nous y voilà, comment créer une tâche ? Contrairement à ce qu`on pourrait constater en voyant le fichier crontab , cela n`est pas compliqué … suffit de suivre ! :-D :

Voici un fichier crontab de root par exemple :

############################################

# DO NOT EDIT THIS FILE - edit the master and reinstall.

# (/tmp/crontab.1435 installed on Thu Feb 12 08:57:34 2004)

SHELL="/bin/bash"

PATH="/sbin:/bin:/usr/sbin:/usr/bin

MAILTO="MON-EMAIL@linuxpourlesnuls.ath.cx"

HOME="/

01 * * * * root nice -n 19 run-parts /etc/cron.hourly

02 4 * * * root nice -n 19 run-parts /etc/cron.daily

22 4 * * 0 root nice -n 19 run-parts /etc/cron.weekly

03 1 * * * root nice -n 19 run-parts /etc/cron.monthly

08 20 * * * /usr/PROGRAMMES/scripts/monscript

###########################################

Chaque ligne contient 6 champs, les 5 premiers ( 01 * * * * dans l`exemple ) vont déterminer les moments de l`exécution des tâches, ce sont les “champs temporels”. Ainsi le 6ème champ va correspondre à la tâche à exécuter.

Chaque “champ temporel” peut contenir :

La fonction “ MAILTO ” vous permet de rediriger le résultat d`une tâche par ……….. tagadagadagadagadagada … par mail !! :-D ( Oui je sais, c`était pas terrible ;) )

Laissons maintenant place aux exemples !!


EXEMPLES

Exemples simples :

Une petite série d`exemples ne fera pas de mal ;).

0 0 1,15 
0 3 7 * * /sbin/shutdown -r
30 3 * * 2 /usr/monscript

15 6 * * 1-5 /home/monscript

0,15,30,45 15-18 1-15 7-9 1-5 /usr/ma tâche
0 2 1 * * find /tmp -atime 31 -exec rm -f {} ;

Exemples pratiques :

0 18 1 * * /usr/monscript
Détail du fichier " monscript ":
#!/bin/sh
#SAUVEGARDE DES REPERTOIRES PERSONNELS
date="$(date)
set -- $date
tar -czvf /var/sauvegarde/home/home.$3$2$6.tgz /home/*
15 * * * * /usr/verifsamba
Détail du fichier " verifsamba ":
#!/bin/sh #VERIFICATION DU SERVICE SAMBA /sbin/pidof smbd > /dev/null if [ $? = 1 ] then /etc/rc.d/init.d/smb stop /etc/rc.d/init.d/smb start echo   "Redemarrage de Samba" | mail -s "[SAMBA VERIFICATION]" monemail@qqch.fr fi

ATTENTION : les 2dernières lignes avant “fi” n`est qu`une seule et même ligne !

15 * * * * /usr/verifadsl
Détail du fichier " verifadsl ":
#!/bin/sh #VERIFICATION DE LA CONNEXION if ! ping -c 1 195.165.15.65 > /dev/null 2>&1 then /usr/bin/killall pppd ppoe sleep 40 /usr/sbin/ppoe/ 10.0.0.20 fi

195.165.15.65 représente une adresse ip qui peut être “pinguée” sur internet.Ex : prenez www.google.fr, faite “ping www.google.fr” et relever son adresse IP puis remplacer celle de l`exemple par celle-ci.

l`adresse 10.0.0.20 représente l`adresse IP de votre modem, bien évidemment à modifier également par la votre.

Voilà, ce tutorial prend fin ici en espérant vous avoir bien aidé. Si vous souhaitez récuperer quelques scripts sympa, dirigez-vous dans la rubrique “Téléchargements” section “Scripts”.