0Pricing
Linux Server Deployment & SSH Mastery · Leçon

Tâches planifiées avec Cron

Automatisez les tâches récurrentes du serveur en créant et en gérant des tâches cron, afin que les scripts et les commandes s’exécutent aux intervalles définis.

Tâches planifiées avec Cron est une leçon Linux Server Deployment & SSH Mastery gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Linux Server Deployment & SSH Mastery, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Linux Server Deployment & SSH Mastery comprend 4 leçons au total.

Pourquoi automatiser les tâches du serveur ?

Les tâches manuelles sur un serveur peuvent être répétitives et sujettes aux erreurs humaines. L'automatisation vous fait gagner du temps et garantit une exécution uniforme des tâches.

Imaginez que vous deviez sauvegarder une base de données chaque nuit ou supprimer les anciens fichiers de journalisation chaque semaine. Effectuer ces opérations manuellement est fastidieux et il est facile de les oublier.

C'est là que les outils de planification se révèlent utiles ! Ils permettent à votre serveur d'effectuer automatiquement des tâches à des heures ou à des intervalles précis, afin que vous puissiez vous consacrer à des activités plus importantes.

Découvrez cron : le planificateur de votre serveur

Cron est un utilitaire fondamental de Linux qui permet de planifier des tâches. Il agit comme un assistant personnel pour votre serveur, en veillant à ce que les commandes ou les scripts s'exécutent automatiquement en arrière-plan aux heures définies à l'avance.

Ces tâches planifiées sont appelées tâches cron. Chaque utilisateur d'un système peut disposer de sa propre liste de tâches cron, enregistrée dans un fichier spécial appelé crontab.

Modifier votre crontab

Pour gérer vos tâches cron personnelles, vous utilisez la commande crontab.

  • Pour modifier votre fichier crontab, saisissez : crontab -e
  • Pour afficher vos tâches cron actuelles, saisissez : crontab -l
  • Pour supprimer toutes vos tâches cron, saisissez : crontab -r (À utiliser avec prudence !)

Lorsque vous exécutez crontab -e, votre crontab s'ouvre dans votre éditeur de texte par défaut, souvent nano ou vi.

Syntaxe de crontab : les champs temporels

Chaque ligne de votre crontab représente une seule tâche cron et suit un modèle précis. Elle comporte cinq champs temporels, suivis de la commande à exécuter.

Le format est le suivant :

minute hour day_of_month month day_of_week command
  • Minute : 0-59
  • Heure : 0-23 (0 correspond à minuit)
  • Jour du mois : 1-31
  • Mois : 1-12 (ou Jan-Dec)
  • Jour de la semaine : 0-7 (0 ou 7 correspond au dimanche, 1 au lundi)

Syntaxe de crontab : astérisques et plages

Vous n'avez pas toujours besoin de nombres exacts. Cron propose des caractères spéciaux pour davantage de flexibilité :

  • * (astérisque) : correspond à chaque valeur possible de ce champ. Par exemple, * dans le champ des minutes signifie « toutes les minutes ».
  • - (trait d'union) : définit une plage. Par exemple, 9-17 dans le champ des heures signifie « de 9 heures à 17 heures ».
  • , (virgule) : définit une liste de valeurs. Par exemple, Mon,Wed,Fri ou 1,3,5 pour les jours de la semaine.
  • / (barre oblique) : définit un pas. Par exemple, */5 dans le champ des minutes signifie « toutes les 5 minutes ».

Syntaxe de crontab : exemples pratiques

Examinons quelques exemples courants pour consolider votre compréhension :

  • * * * * * /path/to/script.sh
    S'exécute toutes les minutes.
  • 0 3 * * * /usr/bin/backup.sh
    S'exécute chaque jour à 3:00 AM.
  • 0 9-17 * * 1-5 /usr/local/bin/check_service.py
    S'exécute toutes les heures de 9 AM à 5 PM, du lundi au vendredi.
  • */15 * * * * echo "Hello, CoddyKit!"
    S'exécute toutes les 15 minutes.

N'oubliez pas de remplacer /path/to/script.sh par le chemin de votre commande ou de votre script.

Chaînes spéciales de crontab

Pour les besoins de planification les plus courants, Cron fournit des chaînes spéciales plus faciles à lire que la syntaxe à cinq champs :

  • @reboot : s'exécute une fois au démarrage.
  • @hourly : s'exécute une fois par heure, au début de l'heure.
  • @daily : s'exécute une fois par jour, à minuit.
  • @weekly : s'exécute une fois par semaine, à minuit le dimanche.
  • @monthly : s'exécute une fois par mois, à minuit le premier jour du mois.
  • @yearly (ou @annually) : s'exécute une fois par an, à minuit le 1er janvier.

Ces chaînes sont très pratiques pour les tâches simples et récurrentes.

Variables d'environnement et chemins

Lorsque cron exécute une tâche, il utilise un ensemble très limité de variables d'environnement. Cela signifie souvent que des commandes qui fonctionnent dans votre terminal peuvent échouer avec cron.

Pour éviter les problèmes :

  • Utilisez toujours des chemins absolus pour les commandes et les scripts (par exemple, /usr/bin/php au lieu de php).
  • Vous pouvez définir une variable PATH directement dans votre fichier crontab, par exemple : PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  • Vous pouvez également définir les variables d'environnement directement dans votre script.

Gérer la sortie et la journalisation

Par défaut, cron tente d'envoyer par e-mail toute sortie (sortie standard et sortie d'erreur) d'une tâche cron à l'utilisateur auquel appartient la crontab. Si aucun système de messagerie n'est configuré, cette sortie peut être perdue ou remplir les fichiers de journalisation.

Il est recommandé de rediriger explicitement la sortie :

  • Pour supprimer toute la sortie : command > /dev/null 2>&1
  • Pour ajouter la sortie à un fichier de journalisation : command >> /var/log/myjob.log 2>&1

La partie 2>&1 redirige la sortie d'erreur standard (2) vers le même emplacement que la sortie standard (1).

Cron à l'échelle du système et crontabs utilisateur

Nous nous sommes concentrés sur les crontabs utilisateur personnelles, gérées avec crontab -e. Elles conviennent parfaitement aux tâches propres à chaque utilisateur.

Pour les tâches à l'échelle du système, les administrateurs utilisent souvent :

  • /etc/crontab : la crontab principale du système, qui permet d'exécuter des tâches avec des utilisateurs spécifiques.
  • /etc/cron.d/ : le répertoire contenant des fichiers cron distincts, souvent installés par des applications.
  • /etc/cron.hourly/, /etc/cron.daily/, etc. : des répertoires où sont placés les scripts à exécuter aux intervalles correspondants par le cron du système.

Ces options au niveau du système offrent un contrôle accru de l'automatisation à l'échelle du serveur.

Testez vos connaissances sur cron

Vous avez appris les bases de la syntaxe de crontab. Voyons si vous pouvez décoder cette tâche cron.

Récapitulatif : automatiser avec cron

Vous maîtrisez désormais les notions essentielles de la planification des tâches avec Cron !

Voici ce que nous avons étudié :

  • Qu'est-ce que Cron ? Un planificateur de tâches fondé sur l'heure.
  • Crontab : votre fichier personnel qui définit les tâches cron.
  • Syntaxe : comprendre les 5 champs temporels et les caractères spéciaux (*, -, ,, /).
  • Chaînes spéciales : des raccourcis tels que @hourly et @reboot.
  • Bonnes pratiques : utiliser des chemins absolus et gérer la sortie.

Avec Cron, vous pouvez automatiser les tâches fastidieuses et garantir le fonctionnement fluide et efficace de votre serveur !

Questions Fréquemment Posées

La leçon « Tâches planifiées avec Cron » est-elle gratuite ?

Oui — le texte complet de « Tâches planifiées avec Cron » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Linux Server Deployment & SSH Mastery, passe à CoddyKit PRO. Le cours Linux Server Deployment & SSH Mastery comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Tâches planifiées avec Cron » ?

Automatisez les tâches récurrentes du serveur en créant et en gérant des tâches cron, afin que les scripts et les commandes s’exécutent aux intervalles définis. Tu pratiques Linux Server Deployment & SSH Mastery avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Linux Server Deployment & SSH Mastery ?

Aucune expérience préalable n'est requise. Linux Server Deployment & SSH Mastery sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Tâches planifiées avec Cron » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Linux Server Deployment & SSH Mastery ?

Oui. Chaque leçon Linux Server Deployment & SSH Mastery inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Gérer les utilisateurs et les groupes
  2. Surveiller les processus système
  3. Tâches planifiées avec Cron
  4. Gérer les services système avec systemd
← Retour à Linux Server Deployment & SSH Mastery