Créer un Cron Job Personnalisé sur Linux

L’automatisation des tĂąches routiniĂšres est essentielle dans toute administration systĂšme ou flux de travail de dĂ©veloppement web robuste. Les cron jobs fournissent un planificateur de tĂąches puissant basĂ© sur le temps dans les systĂšmes d’exploitation de type Unix, vous permettant d’exĂ©cuter des scripts ou des commandes automatiquement Ă  des intervalles programmĂ©s.

 Qu’est-ce qu’un Cron Job ?

Un cron job est une tùche planifiée définie dans le crontab du systÚme (tableau cron) qui exécute des commandes ou des scripts à des moments ou intervalles spécifiés. Cron est largement utilisé car il est :

  • LĂ©ger

  • Hautement personnalisable

  • IntĂ©grĂ© dans la plupart des distributions Linux

 Cas d’utilisation courants

  • Sauvegardes de base de donnĂ©es quotidiennes ou hebdomadaires

  • ExĂ©cution de scripts PHP/Python

  • Rotation des journaux et nettoyage des fichiers temporaires

  • Envoi d’e-mails programmĂ©s

  • Mise Ă  jour des caches de donnĂ©es ou synchronisation des fichiers

Étape 1 : AccĂ©der au Crontab

Pour éditer le crontab de votre utilisateur (sans accÚs root) :

crontab -e
Pour éditer le crontab root (nécessite sudo) :
sudo crontab -e

Étape 2 : DĂ©composition de la syntaxe Cron

Chaque cron job utilise le format suivant :

* * * * * command_to_execute
│ │ │ │ │
│ │ │ │ └──── Day of the week (0-7, Sunday = 0 or 7)
│ │ │ └────── Month (1–12)
│ │ └──────── Day of the month (1–31)
│ └────────── Hour (0–23)
└──────────── Minute (0–59)

 Exemple : Exécuter un script tous les jours à 2h du matin

0 2 * * * /home/user/scripts/backup.sh

Étape 3 : CrĂ©er un script personnalisĂ©

Disons que vous souhaitez exĂ©cuter un script Python personnalisĂ©. Tout d’abord, crĂ©ez le fichier :

nano /home/user/scripts/cleanup.py

Script d’exemple :

#!/usr/bin/env python3
import os
import datetime
log_dir = "/var/log/myapp"
threshold = 7 # days
now = datetime.datetime.now()
for filename in os.listdir(log_dir):
filepath = os.path.join(log_dir, filename)
if os.path.isfile(filepath):
file_age = now - datetime.datetime.fromtimestamp(os.path.getmtime(filepath))
if file_age.days > threshold:
os.remove(filepath)

Rendez le script exécutable :

chmod +x /home/user/scripts/cleanup.py

 Étape 4 : Ajouter le Cron Job

Éditez votre crontab et ajoutez :

0 1 * * * /home/user/scripts/cleanup.py >> /var/log/cleanup.log 2>&1

Ceci :

  • ExĂ©cute le script quotidiennement Ă  1h00

  • Enregistre la sortie dans /var/log/cleanup.log

 Exemples de cas d’utilisation

✅ ExĂ©cuter toutes les 10 minutes

*/10 * * * * /home/user/check_status.sh

✅ ExĂ©cuter uniquement les lundis Ă  3h du matin

0 3 * * 1 /home/user/scripts/weekly_report.sh

 Désactiver ou supprimer un Cron Job

Désactivez temporairement une ligne en la commentant avec #.

Pour supprimer tous les jobs :

crontab -r

Les cron jobs personnalisĂ©s sont un outil puissant pour l’automatisation, la maintenance et la fiabilitĂ©. Que vous gĂ©riez un VPS personnel, dĂ©ployiez des scripts backend ou exĂ©cutiez des charges de travail en production, maĂźtriser cron vous permet de contrĂŽler quand et comment les tĂąches s’exĂ©cutent — sans effort.