Avis Google vérifiés Linux

Comment planifier des tâches automatiques avec cron et systemd

Créez des tâches planifiées fiables avec cron et systemd timers, journalisez les sorties et empêchez les chevauchements sur Linux.

Suggestions populaires
Ctrl K ouvrir · esc fermer
Voir toutes les formations →
Qualiopi · depuis 2024
511+ villes · 25 pays
OPCO et FNE
Par ··8 min de lecture
← Retour au blogComment planifier des tâches automatiques avec cron et systemd

Ce que vous allez faire

À la fin de ce tutoriel vous disposerez d’une crontab qui exécute une commande toutes les heures, d’un timer systemd équivalent, d’une journalisation complète via journalctl et d’un verrou flock qui empêche toute exécution simultanée. Le tout est opérationnel en moins de trente minutes sur un serveur Linux standard.

Prérequis

  • Serveur Linux avec cron et systemd installés (la plupart des distributions récentes)
  • Accès root ou sudo pour éditer les crontabs et les unités
  • Connexion SSH persistante pendant les tests
  • Commande flock disponible (paquet util-linux)
  • 15 à 30 minutes

Étape 1 — Créer une tâche cron simple

Ouvrez la crontab de l’utilisateur courant et ajoutez une entrée qui lance un script de sauvegarde toutes les heures. Cette première étape pose les bases avant d’ajouter la protection contre les chevauchements.

bash
crontab -e
0 * * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1

Étape 2 — Éviter les exécutions qui se chevauchent avec flock

Ajoutez flock pour garantir qu’une seconde instance ne démarre pas tant que la première n’est pas terminée. Le verrou est placé dans /var/lock afin d’être visible par tous les utilisateurs.

bash
0 * * * * flock -n /var/lock/backup.lock /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1

Étape 3 — Journaliser la sortie avec journalctl

Remplacez la redirection vers un fichier par logger pour centraliser les traces dans le journal systemd. Cela facilite le filtrage et la rotation automatique.

bash
0 * * * * flock -n /var/lock/backup.lock /usr/local/bin/backup.sh 2>&1 | logger -t backup

Étape 4 — Créer un timer systemd équivalent

Créez une unité de service puis un timer pour remplacer la crontab lorsque vous avez besoin de dépendances ou de redémarrage automatique.

ini
# /etc/systemd/system/backup.service
[Unit]
Description=Backup service

[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup.sh
ini
# /etc/systemd/system/backup.timer
[Unit]
Description=Run backup hourly

[Timer]
OnCalendar=hourly
Persistent=true

[Install]
WantedBy=timers.target
bash
sudo systemctl daemon-reload
sudo systemctl enable --now backup.timer

Étape 5 — Consulter les logs et tester le timer

Vérifiez le statut du timer et consultez les journaux pour confirmer que les exécutions sont bien tracées et non chevauchées.

bash
systemctl list-timers backup.timer
journalctl -u backup.service -n 20

Vérifier que tout fonctionne

Exécutez manuellement le timer et observez le journal :

bash
sudo systemctl start backup.timer
journalctl -u backup.service --since "5 minutes ago"

Erreurs fréquentes

La tâche ne s’exécute jamais

Vérifiez le chemin absolu des commandes et des scripts dans la crontab ou l’unité systemd. Utilisez which pour obtenir le chemin complet.

Deux instances tournent en même temps

Ajoutez l’option -n à flock ou supprimez le fichier de verrou avant de relancer. Vérifiez avec ps aux | grep backup.

Aucun log n’apparaît dans journalctl

Ajoutez StandardOutput=journal dans la section [Service] de l’unité ou utilisez logger dans la crontab.

Aller plus loin

Passez aux timers systemd avec OnCalendar étendu, ajoutez des conditions Requires ou After, puis explorez les unités de type path pour déclencher sur modification de fichier.

Se former avec Learni

Formation Planification et l'automatisation des tâches avec Cron sous Linux

Administrateurs système et ingénieurs DevOps qui souhaitent créer et gérer des crontabs complexes. 1 journée, niveau Intermédiaire, présentiel, 1490 € HT par participant. Détails de la formation

Formation systemd Avancée - Gérer unités et dépendances

Administrateurs Linux confirmés qui migrent des services vers systemd en production. 3 journées, niveau Avancée, présentiel, 3990 € HT par participant. Détails de la formation

Formation Quartz Scheduler : Planification et automatisation des tâches Java

Développeurs Java qui intègrent la planification de jobs dans leurs applications. 2 journées, niveau Intermédiaire, présentiel, 2690 € HT par participant. Détails de la formation

Devis sous 24 h

FAQ

Comment journaliser une tâche cron avec journalctl ?

Remplacez la redirection fichier par | logger -t backup dans la crontab. Les messages apparaissent ensuite via journalctl -t backup.

Flock empêche-t-il les chevauchements sur systemd timer ?

Oui. Placez flock dans ExecStart de l’unité service ou utilisez Type=oneshot avec le verrou pour les timers.

Quelle est la différence entre cron et un timer systemd ?

Cron gère uniquement la planification horaire. Systemd timer ajoute dépendances, redémarrage automatique et journalisation native via journalctl.

Comment tester un timer sans attendre l’heure planifiée ?

Exécutez sudo systemctl start backup.timer puis journalctl -u backup.service pour voir le résultat immédiat.

Aller plus loin

Se former sur ce sujet avec Learni

Ce tutoriel couvre l'essentiel. Ces trois formations intra-entreprise vont plus loin : cas réels, environnement de votre SI, formateur praticien.

Formation Planification et l'automatisation des tâches avec Cron sous Linux

1 journée · présentiel · Intermédiaire

1 100 € HT / participant

Voir la formation

Formation systemd Avancée - Gérer unités et dépendances

3 journées · présentiel · Avancée

3 300 € HT / participant

Voir la formation

Formation Quartz Scheduler : Planification et automatisation des tâches Java

2 journées · présentiel · Intermédiaire

2 200 € HT / participant

Voir la formation

Une équipe à former sur ce sujet ? Devis sous 24 h

Votre formation professionnelle partout

Construisons
votre prochain
parcours.

30 minutes avec un conseiller formation. Sans engagement. Sans argumentaire commercial maquillé en démo.

Réponse sous 24 h · Qualiopi · OPCO
WhatsApp