Pour ceux qui sont familiers avec le système Unix, vous serez également familiarisé avec l’application cron qui vous permet de planifier et d’automatiser des tâches à exécuter par elles-mêmes. Nous avons même des tutoriels qui vous montrent comment démarrer avec cron et crontabs. Cependant, cron n’est pas parfait, car il nécessite que votre système fonctionne 24 heures sur 24. Si vous avez l’habitude d’éteindre votre ordinateur la nuit et qu’une tâche cron est planifiée pendant les heures de sommeil, la tâche ne sera pas exécutée. Heureusement, il existe plusieurs alternatives cron qui peuvent faire un meilleur travail que cron. Vérifions-les.
1. Anacron
Anacron est un planificateur de commandes périodiques, tout comme cron. La seule différence est qu’il n’a pas besoin que votre ordinateur soit toujours en cours d’exécution. Vous pouvez programmer votre tâche pour qu’elle s’exécute à tout moment. Lorsque votre ordinateur est éteint, la tâche sera exécutée la prochaine fois que vous allumerez l’ordinateur.
Pour commencer, installez simplement anacron
dans votre système. Il est disponible dans la plupart des gestionnaires de packages. Utilisez la commande suivante pour installer dans Ubuntu :
Anacron fonctionne comme cron. Vous pouvez ajouter votre travail au /etc/anacrontab
dossier.
La syntaxe pour ajouter un travail est
period delay-after-computer-start job-identifier command
Par exemple, pour exécuter un script de sauvegarde tous les jours, vous pouvez ajouter la commande suivante :
1 15 cron.daily /bin/sh /home/ramces/backup.sh
L’inconvénient d’anacron est qu’il ne traite que des tâches selon un planning journalier, hebdomadaire ou mensuel. Vous ne pouvez pas l’utiliser pour un programme horaire ou de minutes.
2. Cronie
Une autre alternative brillante à cron que vous pouvez installer aujourd’hui est Cronie. Contrairement aux entrées précédentes, Cronie est une petite suite de logiciels qui vise à fournir une expérience cron complète. Pour ce faire, Cronie inclut par défaut le package anacron. Cela signifie que cronie peut fournir une planification des tâches synchrone et asynchrone prête à l’emploi.
De plus, l’installation de Cronie est relativement simple. Tout d’abord, vous devez obtenir le code source du programme à partir de leur Page Github:
wget https://github.com/cronie-crond/cronie/releases/download/cronie-1.6.1/cronie-1.6.1.tar.gz
Une fois cela fait, décompressez l’archive en exécutant tar sur le terminal :
cd Downloads tar xvzf cronie-1.6.1.tar.gz
De là, allez dans le répertoire Cronie et compilez le code source du programme :
cd cronie-1.6.1/ ./configure make sudo make install
Une fois cela fait, vous pouvez maintenant utiliser Cronie pour gérer les tâches cron sur votre machine. Semblable à anacron et cron, vous pouvez créer une tâche cron en exécutant crontab -e
. Cela vous permettra de modifier la crontab de votre utilisateur spécifique. Sachant cela, Cronie suit également le format standard :
* * * * 0 /your/command/here
3. fcron
Fcron est le meilleur de cron et d’anacron. Il ne nécessite pas que votre ordinateur fonctionne 24 heures sur 24, 7 jours sur 7, et il peut fonctionner avec des tâches sur une base horaire ou minute.
La seule façon d’installer Fcron est de télécharger le fichier source et de le compiler vous-même.
- Télécharger le fichier source ici.
- Extraire l’archive. Ouvrez un terminal et modifiez le chemin du fichier vers le dossier d’archive extrait.
- Exécutez les commandes suivantes :
./configure make sudo make install
Il vous posera quelques questions lors de l’installation et vous pourrez répondre « y » (oui) en toute sécurité pour chacune d’entre elles.
Pour commencer à créer une tâche fcron, tapez simplement fcron -e
dans l’aérogare.
La syntaxe de fcron est similaire à cron :
minute hour day-of-month month day-of-week command-to-be-executed
et il est livré avec plus d’options que cron, telles que la configuration d’une tâche à exécuter entre une plage de temps.
Pour ceux qui préfèrent une interface graphique, vous pouvez consulter fcronq
4. bcron
Bcron est une alternative simple et moderne au programme cron standard. Semblable à Cronie, bcron vise à fournir une suite de logiciels qui gère la planification des tâches de votre système. Pour ce faire, il sépare toutes les fonctions composantes de cron dans leurs propres programmes respectifs. Ceci, à son tour, permet à bcron d’être à la fois hautement modulaire et sécurisé.
Avec cela, l’installation de bcron est incroyablement facile. En cela, si vous utilisez Debian ou Ubuntu, vous pouvez installer le programme via apt :
Une fois cela fait, vous pouvez maintenant utiliser bcron pour planifier des tâches dans votre système. Pour ce faire, vous devez d’abord exécuter la commande suivante pour activer le programme :
envdir /etc/bcron bcron-start envdir /etc/bcron bcron-update /etc/crontab /etc/cron.d
La première commande démarrera bcron dans votre système tandis que la seconde indiquera à bcron d’ouvrir et de mettre à jour les fichiers crontab et cron.d. À partir de là, la syntaxe de création d’une nouvelle tâche est similaire à la fois à anacron et à cronie. Par exemple, je peux écrire la ligne suivante pour indiquer à bcron d’exécuter mon script tous les 5 h du matin le 1er de chaque mois :
0 5 1 * * /my/monthly/script.sh
5. Hcron
Hcron est relativement méconnu, mais cela ne le rend pas moins utile. En fait, il est livré avec plusieurs fonctionnalités qui le rendent unique. Par exemple, vous pouvez facilement étiqueter et organiser vos tâches de type cron, gérer un réseau d’ordinateurs et les fichiers crontab de vos utilisateurs, sauvegarder facilement et contrôler la version de vos tâches de type cron.
Pour installer hcron, télécharger le fichier .deb (ou fichier .rpm, selon votre système Linux) et installez-le sur votre système.
Hcron stocke chaque événement sous forme de fichier texte brut. Pour commencer, créez simplement un fichier texte avec la commande :
hcron-event /path/to/event-file.txt
Dans l’éditeur de texte qui s’ouvre, vous pouvez remplir les détails de l’événement.
Il y a beaucoup plus de choses que vous pouvez faire avec hcron et il est conseillé de télécharger le mode d’emploi pour mieux comprendre son fonctionnement.
6. Jobber
Jobbeur est un planificateur de tâches écrit en GO et est un outil plus puissant que cron. Il présente l’historique d’exécution des travaux avec le statut, contrôle si et quand un travail est exécuté à nouveau après un échec et est averti à chaque exécution échouée ou uniquement sur les travaux qui ont été désactivés en raison d’échecs répétés.
Pour installer Jobber, vous devez vous assurer que GO est installée dans votre système. Tapez ensuite les commandes :
cd /path/to/your/go/workspace go get github.com/dshearer/jobber make -C src/github.com/dshearer/jobber
Après l’installation, démarrez Jobber avec la commande :
sudo /usr/local/sbin/jobberd start
Pour créer des travaux, créez un fichier nommé « .jobber » dans votre répertoire personnel et ajoutez le travail au format suivant :
- name: #Enter the job name here cmd: #the command to run time: #as the same as cron format onError: #Stop | Backoff | Continue notifyOnError: #false | true notifyOnFailure: #false | true
Comme vous pouvez le voir sur le format, il vous permet de définir les actions à entreprendre en cas d’erreur (« Stop », « Backoff » ou « Continue ») et s’il doit vous avertir en cas d’échec.
Une fois que vous avez mis à jour la liste des tâches, utilisez jobber reload
pour que Jobber recharge la nouvelle liste.
A tout moment, vous pouvez utiliser jobber log
pour voir une liste des exécutions récentes de tous les travaux.
7. micron
Mcron est un programme de planification de tâches rapide et innovant pour Linux. Semblable aux programmes ci-dessus, mcron vise à vous fournir un moyen simple de gérer les scripts et les programmes que vous souhaitez exécuter sur votre système. Contrairement aux programmes ci-dessus, mcron vise également à redéfinir la planification des tâches en reconstruisant les tâches cron à partir de zéro.
Avec cela, l’installation de mcron est incroyablement simple. Il est disponible à la fois dans Debian et Ubuntu et vous pouvez facilement l’obtenir en exécutant ce qui suit :
Une fois cela fait, vous pouvez maintenant commencer à utiliser mcron comme planificateur. Pour ce faire, vous devez d’abord créer le répertoire dans lequel mcron cherchera ses tâches :
mkdir /home/$USER/.config/ touch /home/$USER/.config/cron
À partir de là, vous pouvez maintenant modifier ce fichier cron pour qu’il contienne toutes les tâches que vous souhaitez que mcron effectue. Contrairement aux programmes ci-dessus, mcron utilise une syntaxe alternative pour la planification :
(job '(type '(range)) "command")
- Le
job
La fonction indique à mcron que cette ligne de Lisp contient une tâche qu’elle doit planifier. - Le
type
etrange
sont des listes qui contiennent les informations de synchronisation pour mcron. En cela, le type contrôle l’échelle sur laquelle mcron fonctionnera tandis que la plage détermine l’intervalle de temps pour cette échelle. - Enfin, le
command
est une chaîne qui indique à mcron quelle commande ou quel programme il doit exécuter.
Avec cela, je peux ensuite écrire ce qui suit dans mon fichier .config/cron pour exécuter mon script une fois par heure pendant trois heures par jour :
(job '(next-hour '(1 4 8)) "my-script.sh")
Questions fréquemment posées
Est-il possible d’utiliser la syntaxe cron régulière avec mcron ?
En plus d’être un planificateur de tâches innovant, mcron vise également à être rétrocompatible avec l’ancienne syntaxe cron. En tant que tel, vous pouvez également utiliser une syntaxe de type crontab pour votre fichier .config/cron. Par exemple, je peux écrire la ligne suivante pour dire à mcron que je veux exécuter mon script une fois par jour avant minuit :
0 0 0 * * /path/to/my/script.sh
Une chose importante à noter, cependant, est que l’écriture de vos tâches planifiées de cette manière ne vous permettra pas d’utiliser les fonctionnalités plus étendues et flexibles de mcron.
Est-il possible d’empêcher cron d’envoyer du courrier à mon compte utilisateur ?
Il est possible d’empêcher cron d’envoyer des messages système à votre utilisateur. Pour ce faire, vous devrez modifier votre crontab et fournir un MAILTO
variable avec une valeur de nobody
. Par exemple, voici un extrait d’une crontab où j’ai désactivé la messagerie système :
MAILTO=nobody * * 1 * * /first/script/here.sh 0 0 * * * /second/script/here.sh
Sachant cela, vous pouvez également utiliser cette syntaxe pour rediriger la sortie crontab d’un autre utilisateur vers un autre utilisateur. Par exemple, vous pouvez facilement définir cette variable sur la crontab de l’utilisateur root pour obtenir la sortie de toutes les tâches planifiées qu’elle exécute.
Quelle est la meilleure alternative cron pour moi ?
Bien qu’il s’agisse d’une question très subjective, une bonne alternative cron devrait être capable de faire tout ce dont vous pourriez avoir besoin pour votre cas d’utilisation spécifique. Par exemple, vous pouvez envisager d’utiliser des planificateurs de tâches plus simples tels que anacron et cronie si vous prévoyez d’utiliser cron uniquement pour la tâche de base occasionnelle.
D’autre part, un planificateur de tâches plus flexible et puissant tel que mcron vous permettra de créer des scripts et de définir le comportement de cron lui-même. Cependant, l’utilisation de mcron même pour des tâches de base peut être intimidante pour le débutant non initié.