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.

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 :
apt update
apt install cron -yActivez le service :
systemctl enable cron
systemctl start cronVérifiez l'état :
systemctl status cronOuvrir la crontab
Pour éditer la crontab de l'utilisateur actuel :
crontab -ePour éditer la crontab de root :
sudo crontab -eLister les tâches existantes :
crontab -lSupprimer toute la crontab de l'utilisateur :
crontab -rComprendre la syntaxe
Une ligne cron suit ce format :
minute heure jour_du_mois mois jour_de_semaine commandeExemple :
0 3 * * * /usr/local/bin/backup.shCette tâche lance le script tous les jours à 03h00.
Exemples courants
Toutes les 5 minutes :
*/5 * * * * /chemin/script.shTous les jours à 04h00 :
0 4 * * * /chemin/script.shTous les dimanches à 02h30 :
30 2 * * 0 /chemin/script.shTous les premiers jours du mois :
0 1 1 * * /chemin/script.shAu redémarrage du serveur :
@reboot /chemin/script.shCréer un script à exécuter
Créez un dossier pour vos scripts :
mkdir -p /opt/scriptsCréez un script :
nano /opt/scripts/nettoyage.shExemple :
#!/bin/bash
apt clean
find /tmp -type f -mtime +7 -deleteRendez-le exécutable :
chmod +x /opt/scripts/nettoyage.shTestez-le manuellement :
/opt/scripts/nettoyage.shAjoutez-le à cron :
0 4 * * * /opt/scripts/nettoyage.shRediriger les logs
Par défaut, cron peut être discret. Il est préférable d'écrire les sorties dans un fichier de log.
Exemple :
0 4 * * * /opt/scripts/nettoyage.sh >> /var/log/nettoyage.log 2>&1Lire le log :
tail -f /var/log/nettoyage.logUtiliser les chemins complets
Cron n'utilise pas toujours le même environnement qu'une session SSH.
Utilisez des chemins complets :
0 3 * * * /usr/bin/php /var/www/site/artisan schedule:run >> /var/log/laravel-schedule.log 2>&1Trouvez le chemin d'une commande :
which php
which node
which bashVérifier les logs cron
Sur Debian et Ubuntu :
grep CRON /var/log/syslogSuivre en direct :
tail -f /var/log/syslog | grep CRONAvec systemd :
journalctl -u cronErreurs 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 :
chmod +x /chemin/script.shAucun log
Ajoutez une redirection :
>> /var/log/mon-script.log 2>&1Conclusion
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é.