La planification des tâches est gérée avec l’utilitaire cron. Il permet l’exécution périodique des tâches.
Il est réservé à l’administrateur pour les tâches systèmes mais peut être utilisé par les utilisateurs standards pour les tâches ou les scripts auxquels ils ont accès. Pour accéder à l'utilitaire cron, nous utiliserons crontab.
Le service cron sert notamment pour :
Les opérations d’administration répétitives ;
Les sauvegardes ;
La surveillance de l’activité du système ;
L’exécution de programme.
crontab est le diminutif de chrono table mais peut être considéré comme une table de planification des tâches.
Avertissement
Pour configurer un schedule, le système doit être réglé à l'heure exacte.
Le service cron est exécuté par un démon crond présent en mémoire.
Pour vérifier son statut :
[root] # systemctl status crond
Astuce
Si le démon crond n'est pas en cours d'exécution, vous devrez le lancer manuellement et/ou automatiquement au démarrage. En effet, même si des tâches sont planifiées, elles ne seront pas lancées.
Lorsqu'un utilisateur planifie une tâche, un fichier avec son nom est créé sous /var/spool/cron/.
Ce fichier contient toutes les informations dont crond a besoin de savoir concernant toutes les tâches créées par cet utilisateur, les commandes ou programmes à exécuter, et quand les exécuter (heure, minute, jour...).
La commande crontab est utilisée pour gérer le fichier de planification.
crontab [-u utilisateur] [-e | -l | -r]
Exemple :
[root]# crontab -u user1 -e
Option
Observation
-e
Modifier le fichier de planification avec vi
-l
Affiche le contenu du fichier de planification
-u
Nom de l'utilisateur dont le fichier de planification doit être manipulé
-r
Supprime le fichier de planification
Avertissement
crontab sans option efface le fichier schedule existant et attends la saisie de nouvelles lignes par l'utilisateur. Vous devez utiliser ctrl + d pour quitter le mode éditeur.
Seul root peut utiliser l'option -u user pour gérer le fichier de planification d'un autre utilisateur.
L'exemple ci-dessus permet à root de planifier une tâche pour l'utilisateur user1.
Les utilisations de crontab sont nombreuses et incluent :
Modifications des fichiers crontab prises en compte immédiatement ;
Pas besoin de redémarrer.
Par contre, il faut tenir compte des points suivants :
Le programme doit être autonome ;
Prise en charge des redirections (stdin, stdout, stderr);
Il n'est pas pertinent d'exécuter des commandes qui utilisent des requêtes d'entrée/sortie sur un terminal.
Remarque
Il est important de comprendre que le but de la programmation du schedule est d’effectuer des tâches automatiquement, sans nécessiter d’intervention extérieure.