Documentation
Démarrage rapide + description des fonctionnalités module par module et appareil par appareil (mise à jour continue)
Tâches planifiées (Cron)
Cet article explique comment gérer les tâches planifiées sur les serveurs cibles.
D'abord, comprendre : qu'est-ce que Cron
Cron est l'outil de « planification » intégré à Linux. Vous pouvez lui demander de « sauvegarder automatiquement la base de données à 3 h du matin chaque jour », de « nettoyer les journaux toutes les heures », de « redémarrer un service chaque lundi » : il s'exécute automatiquement à l'heure prévue, sans personne pour surveiller.
Présentation de la fonctionnalité
Consulter, ajouter et supprimer les tâches planifiées Cron sur les serveurs cibles.
Cas d'usage
- Sauvegarder la base de données et nettoyer les journaux à intervalles réguliers
- Exécuter périodiquement des scripts de supervision
- Redémarrer périodiquement des services et renouveler des certificats
Comment l'utiliser
Entrez dans « Panneau de gestion du système → Tâches planifiées » d'un serveur pour voir toutes ses tâches Cron actuelles.
Ajouter une tâche
Renseignez l'expression Cron et la commande à exécuter :
| Champ | Description |
|---|---|
| Expression temporelle | format à 5 champs, par ex. 0 3 * * * (3 h du matin chaque jour) |
| Commande | la commande shell à exécuter |
Format d'une expression Cron (minute heure jour mois jour-de-semaine) :
* * * * * commande │ │ │ │ │ │ │ │ │ └── jour de la semaine (0-7, 0/7=dimanche) │ │ │ └──── mois (1-12) │ │ └────── jour du mois (1-31) │ └──────── heure (0-23) └────────── minute (0-59)
Exemples courants :
| Expression | Signification |
|---|---|
*/5 * * * * | toutes les 5 minutes |
0 * * * * | toutes les heures |
0 3 * * * | 3 h du matin chaque jour |
0 3 * * 1 | 3 h du matin chaque lundi |
0 3 1 * * | 3 h du matin le 1er de chaque mois |
0 3 * * 0 | 3 h du matin chaque dimanche |
30 2 * * * | 2 h 30 du matin chaque jour |
Exemples de commandes utiles :
# Sauvegarder la base de données à 3 h du matin chaque jour (exemple) 0 3 * * * docker exec sshe-mysql mariadb-dump -uroot -p'<mot de passe>' nom_de_la_base > /opt/backup/db-$(date +\%F).sql # Nettoyer les fichiers temporaires toutes les 6 heures 0 */6 * * * find /tmp -type f -mtime +7 -delete # Redémarrer un service à 4 h du matin chaque lundi 0 4 * * 1 systemctl restart my-app
Points d'attention
1. Les tâches Cron s'exécutent sous l'identité de l'utilisateur courant du serveur cible : assurez-vous que cet utilisateur a les droits d'exécuter les commandes.
2. Il est conseillé d'écrire des chemins absolus dans les commandes (l'environnement de Cron a peu de variables, un chemin relatif peut ne pas trouver le programme).
3. Un % utilisé dans une commande doit être échappé en \% (Cron traite % comme un caractère spécial).
4. La suppression d'une tâche Cron prend effet immédiatement.
5. Modifier le Cron au niveau système (/etc/crontab) peut nécessiter d'agir en dehors du panneau ; par défaut, le panneau gère le crontab -l de l'utilisateur courant.