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 :

ChampDescription
Expression temporelleformat à 5 champs, par ex. 0 3 * * * (3 h du matin chaque jour)
Commandela 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 :

ExpressionSignification
*/5 * * * *toutes les 5 minutes
0 * * * *toutes les heures
0 3 * * *3 h du matin chaque jour
0 3 * * 13 h du matin chaque lundi
0 3 1 * *3 h du matin le 1er de chaque mois
0 3 * * 03 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.