Documentation/Administration/Planifier des tâches avec cron
Administration9 min2026-05-0629Populaire

Planifier des tâches avec cron

Créer des tâches automatiques avec cron pour exécuter des scripts, sauvegardes ou maintenances régulières.

Planifier des tâches avec cron

Objectif

cron permet de planifier automatiquement des commandes sur un VPS Debian ou Ubuntu.

Exemples d'utilisation :

  • Lancer une sauvegarde tous les jours.
  • Nettoyer des fichiers temporaires.
  • Redémarrer un service à heure fixe.
  • Exécuter un script de maintenance.
  • Mettre à jour un cache.

Vérifier que cron est installé

Installez cron si nécessaire :

bash
apt update
apt install cron -y

Activez le service :

bash
systemctl enable cron
systemctl start cron

Vérifiez l'état :

bash
systemctl status cron

Ouvrir la crontab

Pour éditer la crontab de l'utilisateur actuel :

bash
crontab -e

Pour éditer la crontab de root :

bash
sudo crontab -e

Lister les tâches existantes :

bash
crontab -l

Supprimer toute la crontab de l'utilisateur :

bash
crontab -r

Comprendre la syntaxe

Une ligne cron suit ce format :

text
minute heure jour_du_mois mois jour_de_semaine commande

Exemple :

cron
0 3 * * * /usr/local/bin/backup.sh

Cette tâche lance le script tous les jours à 03h00.


Exemples courants

Toutes les 5 minutes :

cron
*/5 * * * * /chemin/script.sh

Tous les jours à 04h00 :

cron
0 4 * * * /chemin/script.sh

Tous les dimanches à 02h30 :

cron
30 2 * * 0 /chemin/script.sh

Tous les premiers jours du mois :

cron
0 1 1 * * /chemin/script.sh

Au redémarrage du serveur :

cron
@reboot /chemin/script.sh

Créer un script à exécuter

Créez un dossier pour vos scripts :

bash
mkdir -p /opt/scripts

Créez un script :

bash
nano /opt/scripts/nettoyage.sh

Exemple :

bash
#!/bin/bash
apt clean
find /tmp -type f -mtime +7 -delete

Rendez-le exécutable :

bash
chmod +x /opt/scripts/nettoyage.sh

Testez-le manuellement :

bash
/opt/scripts/nettoyage.sh

Ajoutez-le à cron :

cron
0 4 * * * /opt/scripts/nettoyage.sh

Rediriger les logs

Par défaut, cron peut être discret. Il est préférable d'écrire les sorties dans un fichier de log.

Exemple :

cron
0 4 * * * /opt/scripts/nettoyage.sh >> /var/log/nettoyage.log 2>&1

Lire le log :

bash
tail -f /var/log/nettoyage.log

Utiliser les chemins complets

Cron n'utilise pas toujours le même environnement qu'une session SSH.

Utilisez des chemins complets :

cron
0 3 * * * /usr/bin/php /var/www/site/artisan schedule:run >> /var/log/laravel-schedule.log 2>&1

Trouvez le chemin d'une commande :

bash
which php
which node
which bash

Vérifier les logs cron

Sur Debian et Ubuntu :

bash
grep CRON /var/log/syslog

Suivre en direct :

bash
tail -f /var/log/syslog | grep CRON

Avec systemd :

bash
journalctl -u cron

Erreurs fréquentes

Le script fonctionne en SSH mais pas avec cron

Utilisez les chemins complets et vérifiez les variables d'environnement.

Permission denied

Rendez le script exécutable :

bash
chmod +x /chemin/script.sh

Aucun log

Ajoutez une redirection :

cron
>> /var/log/mon-script.log 2>&1

Conclusion

Cron est simple et fiable pour automatiser des tâches répétitives sur un VPS. Testez toujours vos scripts manuellement avant de les planifier, puis ajoutez une sortie de log pour faciliter le diagnostic.

Ce guide vous a aidé ?

Votre retour permet de repérer les guides à améliorer en priorité.