Cron Job : Execution Automatique des Tâches Pour Débutants

Cron Job : Execution Automatique des Tâches Pour Débutants

Il existe souvent des moyens de faire les choses plus efficacement. Par exemple, les webmestres très occupés préfèrent traiter les tâches répétitives à l’aide d’un processus automatisé. Si vous utilisez un système d’exploitation de type Unix, un cron job pourrait vous faire gagner du temps en exécutant les tâches automatiquement.

Dans cet article, nous allons expliquer les bases du cron job et comment l’utiliser pour planifier des tâches.

Les bases d’un cron job

Vous pouvez créer et modifier des cron job en utilisant quelques méthodes différentes. Dans ce tutoriel, nous vous montrerons comment le faire à l’aide de Linux Shell Prompt (Terminal).

Si vous avez un VPS chez Hostinger, vous pouvez trouver les identifiants de connexion dans l’onglet de gestion de votre VPS, et accéder à votre serveur via SSH. La ligne de commande du VPS est accessible via PuTTY SSH ou via le terminal basé sur le navigateur directement depuis hPanel:

Le bouton terminal du navigateur sur hPanel

Voici quelques opérations de base que cron job peut effectuer :

Si vous voulez éditer un fichier crontab de l’utilisateur actuel, tapez la commande suivante dans le terminal :

crontab -e

Il vous donnera un résultat comme celui-ci :

Résultat du cron job crontab -e

Comme il utilise l’éditeur vi, vous pouvez apprendre les commandes vi de base pour vous assurer que vous effectuez les bonnes actions.

Si vous souhaitez modifier le crontab d’un autre utilisateur, vous pouvez taper crontab -u [utilisateur] -e. Gardez à l’esprit que vous ne pouvez le faire qu’en tant que super-utilisateur « superuser », ce qui signifie que vous devez taper : sudo su avant la commande.

La commande permettant d'éditer crontab -e d'un autre utilisateur

Si vous voulez supprimer le fichier crontab actuel de l’utilisateur actuel, tapez la commande suivante :

crontab -r

L’option suivante est la même que -r, mais elle invite l’utilisateur à choisir une option oui/non avant de supprimer le crontab :

crontab -i

Si vous souhaitez afficher le contenu du fichier crontab sous lequel vous êtes actuellement connecté, tapez la commande suivante dans le terminal :

crontab -l

Une autre opération permet de voir si des fichiers crontab ont été créés. Vous pouvez simplement taper crontab -l. Si vous n’en avez pas, vous verrez ce résultat.

Résultat de la commande crontab -l

De plus, si vous voulez voir la liste des fichiers crontab des autres utilisateurs, vous pouvez taper crontab -u [utilisateur] -l comme super-utilisateur.

Résultat de crontab -u utilisateur -l

En plus de connaître les opérations de base, il est important d’apprendre la syntaxe de base également.

En principe, un fichier crontab se compose de deux parties : le planificateur et la commande. C’est ainsi que la commande est écrite :

* * * * * /bin/sh sauvegarde.sh
  • * * * * * /bin/sh sauvegarde.sh signifie que le cron job effectuera une sauvegarde toutes les minutes.
  • 30 18 * * * rm /home/hostinger/tmp/* signifie qu’il supprime les fichiers temporaires de /home/hostinger/tmp tous les jours à 18h30.

Voyons un peu plus en détail.

Comment écrire correctement la syntaxe cron

Comme mentionné précédemment, un fichier crontab comporte cinq champs – chaque champ est représenté par un astérisque – pour déterminer la date et l’heure d’une certaine tâche à effectuer de manière répétitive.

Cinq champs du fichier Crontab
  • Minute — minute de l’heure à laquelle la commande sera exécutée, allant de 0 à 59.
  • Heure — l’heure à laquelle la commande sera exécutée, de 0 à 23.
  • Jour du mois — le jour du mois où vous voulez que la commande soit exécutée, de 1 à 31.
  • Mois — le mois sur lequel la commande spécifiée sera exécutée, de 1 à 12.
  • Jour de la semaine — le jour de la semaine où vous souhaitez que la commande soit exécutée, de 0 à 7.

De plus, vous devez utiliser les caractères appropriés dans chaque fichier crontab.

  • Astérisque (*) — pour définir tous les paramètres de planification.
  • Virgule (,) — pour maintenir deux ou plusieurs temps d’exécution de la même commande.
  • Tiret (-) — pour déterminer la plage de temps lors de la définition de plusieurs temps d’exécution d’une même commande.
  • Barre oblique (/) — pour créer des intervalles de temps prédéterminés dans une plage spécifique.
  • Dernier (L) « Last en anglais » — dans le but précis de déterminer le dernier jour de la semaine d’un mois donné. Par exemple, 3L signifie le dernier mercredi.
  • Jour de la semaine (W) « Weekday en anglais » — pour déterminer le jour de la semaine le plus proche d’un moment donné. Par exemple, 1W signifie que si le 1er est un samedi, la commande sera exécutée le lundi (le 3).
  • Hash (#) — pour déterminer le jour de la semaine, suivi d’un nombre allant de 1 à 5. Par exemple, 1#2 signifie le deuxième lundi

12 Exemples de syntaxe cron

Maintenant que vous avez appris à écrire correctement la syntaxe cron, nous allons vous donner d’autres exemples pour vous aider à mieux comprendre les règles énoncées ci-dessus.

Avant de poursuivre, n’oubliez pas que le résultat de la commande sera automatiquement envoyé à votre compte e-mail local. Donc, si vous voulez arrêter de recevoir ces emails, vous pouvez ajouter >/dev/null 2>&1 à la syntaxe comme dans l’exemple suivant :

0 5 * * * /root/sauvegarde.sh >/dev/null 2>&1

Si vous souhaitez envoyer le contenu de l’email à un compte spécifique, vous pouvez ajouter MAILTO suivi de l’adresse e-mail. Voici un exemple :

MAILTO="nom@domaine-exemple.com"
0 3 * * * /root/sauvegarde.sh >/dev/null 2>&1

Voici d’autres exemples de syntaxe :

ExpressionSignification
0 0 * * * /bin/sh sauvegarde.shPour effectuer une sauvegarde de la base de données à minuit, et fonctionner une fois par jour.
0 6,18 * * * /bin/sh sauvegarde.shPour effectuer une sauvegarde de la base de données deux fois par jour à 6h et à 18h.
0 */6 * * * /scripts/surveiller.shPour effectuer une surveillance toutes les six heures.
*/10 * * * * /home/user/script.shPour effectuer un cron job pour le fichier de script situé dans le répertoire home toutes les 10 minutes.
0 * 20 7 * /bin/sh sauvegarde.shPour effectuer une sauvegarde de la base de données toutes les heures tous les 20 juillet.
0 0 * * 2 * /bin/shPour exécuter une sauvegarde de la base de données à minuit tous les mardis.
* * * 1,2,5 *  /script/script.shPour exécuter une commande en janvier, février et mai.
10-59/5 5 * * * /home/user/script.shPour exécuter une commande toutes les 5 minutes à 5h du matin, à partir de 5h10.
0 8 1 */3 * /home/user/script.shPour exécuter une commande trimestrielle le 1er jour à 8 heures.
* * * * * /scripts/script.sh; /scripts/scrit2.shPour définir un planning pour plusieurs tâches sur un seul cron job.
@reboot /scripts/script.shPour effectuer une certaine tâche à chaque fois que vous démarrez le système.
0 0 1 * *  /home/user/script.shPour exécuter une commande le premier jour de chaque mois

Autorisations de cron

Deux fichiers jouent un rôle important en ce qui concerne les cron jobs.

  • /etc/cron.allow – si le cron.allow existe, il doit contenir le nom de l’utilisateur pour que l’utilisateur puisse utiliser les cron jobs.
  • /etc/cron.deny – si le fichier cron.allow n’existe pas mais que le fichier cron.deny existe, alors pour utiliser les tâches cron, l’utilisateur ne doit pas être listé dans le fichier cron.deny.

Qu’est-ce qu’un cron job ?

Cron est un programme utilitaire permettant de répéter des tâches à un moment ultérieur. Donner une commande qui planifie une tâche, à un moment précis, de manière répétitive est une tâche cron.

Si vous souhaitez programmer une tâche unique, pour une date ultérieure, vous pouvez utiliser une autre commande. Mais, pour les tâches récurrentes, cron est la solution idéale.

Cron est un daemon, ce qui signifie qu’il travaille en arrière-plan pour exécuter des tâches non interactives. Sous Windows, vous êtes peut-être familier avec les processus d’arrière-plan tels que les services.

Un daemon est toujours à l’état de veille et attend de voir si une commande lui demande d’exécuter une certaine tâche — soit au sein de l’ordinateur, soit à partir de tout autre ordinateur du réseau.

Un fichier cron est un simple fichier texte qui contient des commandes à exécuter à un moment précis. Le fichier crontab par défaut du système est /etc/crontab et se trouve dans un répertoire crontab, /etc/cron.*/. Seuls les administrateurs système peuvent modifier le fichier crontab du système.

Cependant, comme les systèmes d’exploitation de type Unix prennent en charge plusieurs utilisateurs, chacun peut également créer son propre fichier crontab et lancer des commandes pour effectuer des tâches à tout moment. Un démon cron vérifiera le fichier et lancera la commande en arrière-plan du système.

Avec les tâches cron, vous pouvez automatiser la maintenance du système, la surveillance de l’espace disque et programmer des sauvegardes. De par leur nature, les cron jobs sont parfaits pour un ordinateur qui fonctionne 24 heures sur 24, 7 jours sur 7 — un serveur.

Veuillez noter que même si les cron jobs sont surtout utilisés par les administrateurs système, ils peuvent être incroyablement utiles pour les développeurs web également. Par exemple, utilisez cron pour désactiver des comptes expirés, vérifier des liens cassés, ou même envoyer des bulletins d’information pour des utilisateurs ciblés.

Conclusion

Configurer une tâche automatiquement programmée sera non seulement pratique, mais vous évitera également de manquer l’action à temps.

Cron job est un excellent moyen de gérer ce type de tâches, que ce soit en tant qu’administrateur système ou dans d’autres professions comme celle de développeur web. Il vous suffit d’utiliser la bonne commande et de choisir le bon moment.

Voici quelques-unes des commandes de base :

  • crontab e — pour créer et modifier un fichier crontab.
  • crontab -u utilisateur -e — pour modifier le fichier crontab d’un autre utilisateur avec un accès super-utilisateur.
  • crontab -l — pour consulter la liste des fichiers crontab des utilisateurs actuels.
  • crontab -r — pour supprimer les fichiers crontab.
  • crontab -a nom_du_fichier — pour installer le nom_du_fichier sous forme de fichier crontab (sur certains systèmes, -a n’est pas nécessaire).

Maintenant, essayez de laisser l’automatisation fonctionner pour vous quand vous le souhaitez.

Author
L'auteur

Ismail

Ismail est un spécialiste du référencement et de la localisation chez Hostinger. Il est passionné par la technologie et le développement web et possède des années d'expérience dans le domaine informatique. Ses passe-temps incluent les jeux vidéo et le football.