Si vous êtes à la recherche d’une méthode pour économiser du temps sur un système d’exploitation de type Unix, utiliser un cron job (cron job ou tâche cron) saura vous satisfaire. Aimeriez-vous en savoir plus ? 😊 Voici l’essentiel à savoir sur les bases du cron job et son fonctionnement dans la planification des tâches.
Objectifs
En informatique, l’objectif visé consiste à réussir l’automatisation de tâches répétitives. Parmi les méthodes utilisées pas les webmasters pour automatiser des tâches sur leurs serveurs, on retrouve les tâches cron. À la fois simples et puissantes, ces routines aident les administrateurs de système à faire des économies de temps et d’efforts.
Prérequis
L’utilisation d’un daemon cron se fait avec un système d’exploitation. En outre, il faut réunir certains prérequis pour pouvoir mettre en place des cron jobs :
- Un serveur dédié ou un hébergement web avec accès SSH ;
- Un client FTP pour transférer des fichiers et télécharger les fichiers cron ;
- Un terminal Secure Shell (SSH) pour l’accès.
⚠️Ces prérequis sont indispensables pour utiliser les cron jobs. ⚠️
Vous n’avez pas encore de serveur dédié avec accès SSH ? Découvrez les serveurs VPS ISPConfig LWS !
INFO : Les hébergements web mutualisés (hébergement Linux ou hébergement cPanel) disposent également d’un accès SSH, avec un terminal SSH intégré au panneau de contrôle LWS Panel.
Qu’est-ce qu’un cron job ?
Encore désigné sous le nom de planificateur de tâches, le Cron Job est un service Linux qui permet de répéter des tâches spécifiques à un moment précis choisi par les utilisateurs. Il s’agit d’un outil très utile pour les administrateurs système surmenés. 🙃 En effet, il permet d’exécuter des scripts ou commandes de manière automatique dans une plage d’horaire définie. C’est aussi la solution idéale pour gérer les tâches récurrentes. 😊
En tant que daemon, le cron est un programme dont les actions se font en arrière-plan pour réaliser des tâches non interactives. Grâce à l’état de veille permanent, le daemon peut effectuer à n’importe quel moment une tâche selon la commande utilisée. 💡
Ainsi, les cron jobs sont parfaits pour des ordinateurs opérationnels 24 h/24 et 7J/7 à l’exemple des serveurs.
Par ailleurs, même s’ils sont utilisés par les administrateurs système en général, les cron jobs peuvent aussi s’avérer très utile pour les développeurs web. Vous pouvez ainsi utiliser cron pour réaliser des actions comme : vérifier des liens cassés, envoyer des bulletins d’information à des utilisateurs ciblés ou même désactiver des comptes expirés.
Les bases d’un cron job
Pour créer et modifier des cron job, il est essentiel de connaître quelques opérations de bases. Voici les plus courantes sur Linux Shell Prompt :
crontab -e
Avec la commande crontab – e, il est possible de modifier un fichier crontab créé par l’utilisateur actuel avec un résultat comme celui-ci.
Avec la commande crontab – u [utilisateur] – e, il est possible d’éditer le crontab d’un autre utilisateur.
crontab -u
L’action de cette commande n’est possible que pour un « superuser ». Il est de ce fait indispensable de taper « sudo » avant cette commande.
crontab -r
Avec la commande crontab – r, le fichier crontab actuel de l’utilisateur actuel est retiré.
crontab -i
Avec la commande crontab – i, l’action est similaire à – r, toutefois, elle exige une confirmation « oui/non » avant de retirer le crontab.
crontab -l
Avec la commande crontab – l, il est possible d’afficher le contenu du fichier sur lequel vous êtes connecté. Elle vous offre aussi la possibilité de savoir si des fichiers contrat ont été créés.
Outre ses opérations de base, il est essentiel de maîtriser la syntaxe de base. Un fichier crontab est généralement composé de deux parties que sont le planificateur et la commande.
* * * */bin/sh sauvegarde.sh
Cette dernière est écrite par exemple comme suit : * * * */bin/sh sauvegarde.sh (commande qui permet de réaliser une sauvegarde chaque minute) ou comme :, « 30 20* * * rm/home/sydtesting/tmp/* » (commande voulant dire que le fichier tmp sera retiré de/home/sydtesting/tmp chaque jour à 20 h 3).
Comment écrire correctement la syntaxe cron ?
Un fichier crontab est composé de cinq champs utilisés pour préciser l’heure et la date auxquelles sera exécutée une tâche spécifique de manière répétitive. Il s’agit :
De la minute : allant de 0 à 59, c’est la minute de l’heure à laquelle sera lancée la commande.
De l’heure : allant de 0 à 23, c’est l’heure à laquelle sera lancée la commande.
Du Jour d’un mois : allant de 1 à 31, c’est le jour du mois où la commande sera lancée.
Du mois : allant de 1 à 12, c’est le mois où vous aimerez que la commande soit exécutée.
Du jour de la semaine : de 0 à 7, c’est le jour de la semaine où vous désirez que la commande soit lancée.
Il est à noter que pour chaque fichier crontab sont utilisés des caractères appropriés. Il s’agit :
De l’astérisque (*) : utilisé pour un fichier de définition des paramètres de planification.
De la virgule (,) : utilisé pour fixer plusieurs dates d’exécution de la même commande.
Du tiret (- ) : caractère utilisé pour fixer le créneau horaire si de nombreuses dates d’exécution d’une commande sont définies
De la barre oblique (/) : vous permet de fixer des intervalles de temps prédéterminés dans un créneau spécifique.
Du last (L) : utilisé pour fixer le dernier jour d’une semaine ou d’un mois spécifique.
Du weekday (W) : permet de déterminer le jour de la semaine le plus proche d’un moment donné.
Du hash (#) : il permet de préciser le jour de la semaine, suivi d’un nombre allant de 1 à 5.
12 Exemples de syntaxe cron
Maintenant que vous savez comment écrire une syntaxe cron, voici 12 exemples de syntaxes cron qui font des tâches spécifiques de manière répétitive.
0 0 * * */bin/sh backup.sh
Cette syntaxe permet de faire la sauvegarde de votre base de données une fois par jour à minuit.
* * */scripts/script.sh ; /scripts/scrit2.sh
Syntaxe cron à taper pour faire un planning pour de multiples tâches sur un unique Cron job.
@reboot/scripts/script.sh
Pour faire une tâche particulière à chaque fois que le système est démarré, utilisez cette syntaxe Cron.
0 0 1 * */home/user/script.sh
Syntaxe utilisée pour faire une commande spécifique le premier jour de chaque mois.
0 7.19 * * */bin/sh backup.sh
Cette syntaxe permet de réaliser une sauvegarde de la base de données deux fois par jour à 7 h et à 19 h.
0 */6 * * */scripts/monitor.sh
Permet de faire un suivi toutes les six heures.
*/4 * * * */home/user/script.sh
Exécute un cron job pour le fichier script qui se trouve dans le répertoire home toutes les 4 minutes.
0 * 16 9 */bin/sh backup.sh
Exemple de syntaxe qui lance la sauvegarde de la base de données toutes les heures tous les 16 septembre.
0 0 * * 1 */bin/sh
Sauvegarde de la base de données à minuit tous les lundis.
* 3, 7, 9 */script/script.sh
Syntaxe qui vous permettra d’exécuter une commande en Mars, Juillet et Septembre.
10–59/5 5 * * */home/user/script.sh
Effectue une commande chaque 5 minutes à 5 h, débutant à partir de 5 h 10.
0 8 1 */3 */home/user/script.sh
Exemple de syntaxe pour effectuer une commande trimestrielle le premier jour à 8 h.
Il est important de ne pas oublier que le résultat obtenu à l’exécution de la commande crontab est systématiquement transmise dans votre boîte mail . Dans le cas où vous aurez envie d’arrêter de recevoir les résultats dans votre boîte, ajoutez simplement >/dev/null 2>&1 à la syntaxe. En voici un exemple :
05***/root/sauvegarde.sh>/dev/null 2>&1
Par ailleurs, Si vous souhaitez transmettre le résultat à une adresse particulière, ajoutez MAILTO suivi de l’adresse e-mail comme indiqué dans l’exemple suivante :
MAILTO = "nom@domaine-exemple.com" 03***/root/sauvegarde.sh>/dev/null 2>&1
Autorisations de cron
L’usage des cron jobs nécessite deux fichiers essentiels :
/etc/
dans le cas où le cron. allow existe, il doit obligatoirement contenir le nom de l’utilisateur afin que ce dernier ait la possibilité d’utiliser les cron jobs ;
/etc/cron.dey
dans le cas où le cron. allow n’existe pas à l’inverse du fichier cron.deny, l’utilisateur ne pourra utiliser les cron jobs que si le nom de l’utilisateur n’est pas dans le fichier cron.deny.
INFO : ces commandes sont autorisées sur tous les hébergements web LWS. Si vous disposez d’un hébergement web mutualisé, la durée de la tâche cron est cependant limitée à 4 minutes.
Conclusion
🥳 Toutes nos félicitations pour être arrivé jusqu’à la fin de la lecture ! 🥳 Confier des tâches spécifiques à Cron Job vous offre des possibilités très intéressantes : pouvoir configurer une tâche programmée, pouvoir vous aider à ne pas rater l’action à temps. Cron job est un moyen très intéressant pour gérer ce type de tâches, que vous soyez un administrateur système ou dans une autre profession.
Parmi les commandes de bases utilisées pour le cron, nous avons :
$ crontab - l
voir la liste des fichiers crontab des utilisateurs actuels.
$ crontab - r
suppression des fichiers crontab.
$ crontab - e
création et modification d’un fichier crontab.
$ crontab - a nom_du_fichier
installation du nom_du_fichier sous forme de fichier crontab (– a n’est pas toujours nécessaire selon le système utilisé).
$ crontab - u utilisateur - e
modification d’un fichier crontab appartenant à autre utilisateur avec un accès super-utilisateur.
Une fois les commandes de bases et la syntaxe maîtrisées, il ne reste plus qu’à laisser l’automatisation marcher pour vous selon la plage horaire de votre choix.
Si vous avez des remarques concernant cet article, n’hésitez pas à nous laisser un commentaire !
Commentaires (0)