Quand on doit planifier des tâches sous Linux, on utilise forcément Cron. Cet utilitaire permet de panifier des commandes à un moment précis. La création et modification d'une tâche se fait généralement avec l'utilitaire crontab. Cependant, découvrons une interface graphique permettant de gérer ces tâches cron dans son navigateur !

Avec crontab-ui, vous n'avez plus besoin de modifier vos tâches avec crontab. Toutes les manipulations peuvent être faites directement depuis un navigateur Web en quelques clics. L'interface de crontab-ui vous permet de créer, modifier, suspendre, supprimer, sauvegarder des tâches cron. L'outil permet même d'importer, d'exporter et de déployer des tâches sur d'autres machines. Les logs d'erreurs, le mailing et le support des hooks sont également possibles. crontab-ui est gratuit, open source et écrit en utilisant NodeJS.

Pour installer crontab-ui, il vous faut au préalable NodeJS sur votre poste.

Installez ensuite le paquet crontab-ui en global :

npm install -g crontab-ui

Pour lancer crontab-ui, rien de très compliqué :

crontab-ui

Vous devriez avoir l'URL d'accès à l'interface de crontab-ui.

Rendez-vous dans votre navigateur Web préféré et accédez à l'URL citée dans votre terminal.

Si vous souhaitez changer le port d'écoute, lancez crontab-ui comme ceci :

PORT=8080 crontab-ui

Comme vous pouvez le voir, l'interface de crontab-ui est très simple et facile d'accès. Les différentes fonctionnalités parlent d'elles-mêmes.

On y retrouve une série de boutons permettant de créer une tâche, de faire des sauvegardes de la base de données de crontab-ui, d'importer ou exporter les tâches et également de récupérer les tâches présentes dans le crontab et de sauvegarder les tâches de crontab-ui dans le crontab.

Vient ensuite un tableau représentant toutes les tâches existantes. Pour chacune d'elle, vous pouvez la lancer, la modifier, la mettre en pause, la supprimer.

Pour créer une tâche cron, cliquez sur le bouton "New" puis renseignez plusieurs champs : le nom de la tâche, la commande à exécuter, la périodicité "rapide" (au démarrage, toutes les heures, toutes les semaines, tous les mois, tous les ans) ou choisissez vous-même les minutes / heures / jours / mois / semaines, comme pour une tâche cron classique. N'oubliez pas de cliquer sur le bouton "Set" pour mettre à jour l'aperçu de la tâche cron.

Vous pouvez également choisir d'activer ou non les logs d'erreurs (par mail ou par hook (non disponible lors de l'écriture de cet article)).

L'import des tâches présentes dans le crontab fonctionne correctement.

De même que l'export vers le crontab :

Si vous voulez que les tâches créées s'ajoutent directement dans le crontab, vous devez lancer crontab-ui avec le paramètre `--autosave`` :

crontab-ui --autosave

L'export des tâches de crontab-ui se fait dans un fichier .db, sous cette forme :

{"name":"Cache clean","command":"rm -rf /var/cache","schedule":"@weekly","stopped":false,"timestamp":"Thu Aug 23 2018 16:17:04 GMT+0200 (CEST)","logging":"false","mailing":{},"created":1535033824315,"_id":"oxfSdbGTz7ctRSks"}

crontab-ui est un outil assez pratique, qui peut s'avérer intéressant lorsque l'on a un grand nombre de tâches cron à gérer ou que l'on ne souhaite pas s'embêter avec crontab.