Automatiser les processus avec Cron et Crontab dans Solaris

La fonction cron fournit un puissant planificateur de processus à résolution minute. Si un processus doit être exécuté de manière répétée sans intervention humaine, une entrée dans le fichier crontab peut prendre en charge la plupart des planifications. Il existe des règles simples pour modifier les entrées de la crontab qui doivent être suivies.


Pour éditer le fichier crontab, le programme crontab doit être utilisé. Les fichiers crontab ne doivent pas être modifiés directement car le contenu est mis en cache et les modifications ne prendront effet que lorsque le processus crond sera redémarré. L'utilisation du programme crontab pour éditer les crontabs mettra à jour le cache lorsque le fichier est modifié. Pour éditer le fichier crontab de l'utilisateur actuel, utilisez ce qui suit:

crontab -e

L'option -e indique au programme de modifier une copie du fichier crontab de l'utilisateur. La variable d'environnement EDITOR est référencée pour déterminer l'éditeur à utiliser (la valeur par défaut est ed). Pour définir cette variable d’environnement, voir les recettes pour ksh et sh.

Le superutilisateur peut éditer la crontab d'un utilisateur spécifique en ajoutant le nom d'utilisateur à la fin de cette commande. Les processus exécutés à partir de la crontab d'un utilisateur seront exécutés en tant que cet utilisateur. Soyez prudent avec les commandes de la crontab de root, car elles s'exécuteront en tant que root et pourraient causer des problèmes. Si les scripts de shell sont exécutés à partir du fichier crontab de root, assurez-vous que leurs autorisations de fichier ne permettent pas la modification par quiconque, sauf root.

La syntaxe de crontab est simple. Chaque ligne représente une tâche planifiée unique. Les cinq premiers champs représentent des informations de minutage et tout ce qui suit est interprété comme la commande à planifier. Les champs de chronométrage dans l'ordre sont les suivants:

minutes - 0-59
heures - 0-23
jours du mois - 1-31
mois de l'année - 1-12
jours de la semaine - 0-6 (dimanche-samedi)

Une variété d'options fonctionnent pour chaque domaine. Un astérisque (*) indique toutes les occurrences possibles pour ce champ. Un nombre définit cette occurrence unique. Deux nombres séparés par un - indiquent une plage de valeurs, et les nombres séparés par une virgule indiquent une liste d'occurrences.

Voici plusieurs exemples:

15 * * * * logcheck
Exécute une commande appelée "logcheck" toutes les 15 minutes de chaque jour.

0,15,30,45 8-17 * * 1-5 dobackup
La sauvegarde est effectuée toutes les 15 minutes (à savoir, 8h00, 8h15, 8h30 et 8h45) pendant les heures ouvrables (de 8h00 à 17h00) pendant les jours ouvrables (du lundi au vendredi).