Qu'est-ce qu'un Cron Job ? Guide pratique
Découvrez le fonctionnement des Cron Jobs, des fichiers crontab et des tâches récurrentes, avec des conseils pour les tester en toute sécurité.
Fonctionnement de Cron
Cron est un planificateur des systèmes de type Unix. Le service Cron lit les fichiers crontab et lance une commande lorsque la date et l'heure correspondent à l'expression.
30 2 * * * /usr/local/bin/backup
Cet exemple lance une sauvegarde chaque jour à 02:30.
Une entrée peut aussi définir des variables, rediriger la sortie ou appeler un script. Placer la logique complexe dans un script testé rend généralement le planning plus lisible.
Usages courants
- Sauvegardes et génération de rapports
- Nettoyage du cache et rotation des journaux
- Importation de données
- Contrôles de santé et notifications
Crontabs utilisateur et système
La commande crontab -e modifie le planning de l'utilisateur courant. La commande programmée s'exécute avec ses droits et dans un environnement plus limité qu'un terminal interactif. Une crontab système peut contenir un champ supplémentaire pour le nom d'utilisateur. Il faut donc vérifier le format avant de copier une ligne.
Les emplacements courants incluent /etc/crontab, /etc/cron.d et des dossiers périodiques comme /etc/cron.daily. Ils peuvent varier selon le système.
Journalisation et dépannage
Si une commande fonctionne dans le terminal mais pas dans Cron, contrôlez l'utilisateur, le répertoire courant, le PATH, le shell et les variables d'environnement. Utilisez des chemins absolus et redirigez la sortie standard et les erreurs vers un journal maîtrisé.
Vérifiez aussi que le service Cron fonctionne et que la crontab appartient au bon utilisateur. Un fuseau horaire différent explique souvent une exécution à la mauvaise heure.
Des tâches récurrentes fiables
Une tâche doit pouvoir être répétée sans endommager les données. Ajoutez un verrou si deux exécutions ne doivent pas se chevaucher, retournez des codes de sortie utiles et surveillez les échecs. Ne placez pas de secrets directement dans la crontab et limitez l'accès aux fichiers de configuration.
Utilisez des chemins absolus, définissez les variables d'environnement nécessaires et enregistrez les erreurs. Testez la commande avec le même utilisateur que Cron.
Collez un planning dans le décodeur Cron ou créez-en un avec le générateur Cron.