Création d’une tâche Cron personnalisée sous Linux

L’automatisation des tâches de routine est essentielle à toute administration de système robuste ou à tout flux de travail de développement web. Les tâches Cron constituent un puissant planificateur de tâches basé sur le temps dans les systèmes d’exploitation de type Unix, qui vous permet d’exécuter des scripts ou des commandes automatiquement à intervalles programmés.

Qu’est-ce qu’un job Cron ?

Un job cron est une tâche planifiée définie dans la table crontab (table cron) du système qui exécute des commandes ou des scripts à des moments ou des intervalles spécifiés. Cron est largement utilisé parce qu’il est.. :

  • Léger

  • Hautement personnalisable

  • Intégré dans la plupart des distributions Linux

Cas d’utilisation courants

  • Sauvegardes quotidiennes ou hebdomadaires des bases de données

  • 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 à la Crontab

Pour éditer la crontab de votre utilisateur (sans accès root) :

crontab -e
Pour éditer la crontab de l’utilisateur root (nécessite sudo) :
sudo crontab -e

Étape 2 : Décomposition de la syntaxe de Cron

Chaque job cron 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 à 2 heures du matin

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

Étape 3 : Créer un script personnalisé

Imaginons que vous souhaitiez exécuter un script Python personnalisé. Commencez par créer le fichier :

nano /home/user/scripts/cleanup.py

Exemple de script :

#!/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

Etape 4 : Ajouter le job Cron

Editez votre crontab et ajoutez :

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

Ceci :

  • Exécute le script tous les jours à 1:00 AM

  • 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 à 3 heures du matin

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

Désactiver ou supprimer un travail Cron

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

Pour supprimer tous les travaux :

crontab -r

Les tâches cron personnalisées sont un outil puissant pour l’automatisation, la maintenance et la fiabilité. Que vous gériez un VPS personnel, déployiez des scripts de backend ou exécutiez des charges de travail de production, la maîtrise de cron vous permet de contrôler quand et comment les tâches s’exécutent – sans effort.