Gérez efficacement vos tâches cron avec DS Scheduler

J’ai toujours eu un peu de mal avec la syntaxe cron… On s’y perd facilement à mesure que les tâches s’accumulent et ça peut vite devenir laborieux. C’est pourquoi je me suis mis à la recherche d’un petit outil pour me faciliter les choses et devinez quoi, je suis tombé sur une perle !

Un projet gratuit, open source, sous licence GPLv2 qui répond au doux nom de DS Scheduler et qui va vous permettre de gérer, planifier et suivre vos tâches et commandes automatiques via une interface web très jolie. C’est parti pour le tutoriel, toujours sous Ubuntu Server 12.04.

Téléchargement

Commençons par récupérer les sources. Un dépôt GIT est à notre disposition :

git clone git://solar1.net/scheduler.git

Si tout comme moi vous n’utilisez pas GIT, vous pouvez aussi récupérer une archive tar.gz à cette adresse.

Installation

Préparation d’APScheduler

Pour fonctionner, DS Scheduler a besoin d’un serveur web Apache, de Python 2.6 ou supérieur ainsi qu’Advanced Python Scheduler (APSchedler). Je vous passe les explications pour Apache ou Python. En revanche, voici quelques explications pour APSchedler.

  1. Récupérer l’archive sur python.org, décompressez et installez :
    wget http://pypi.python.org/packages/source/A/APScheduler/APScheduler-2.0.3.tar.gz
    tar -zxf APScheduler-2.0.3.tar.gz
    chmod +x APScheduler2.0.3/setup.py
    python APScheduler2.0.3/setup.py install
  2. Et voilà, rien d’autre à faire dans le cadre de DScheduler. Par contre si vous vous sentez l’envie, vous pouvez aller lire la documentation par ici…

Préparation d’Apache

Comme notre service est une sorte de WebUI pour Cron, il va falloir configurer Apache pour qu’il sache où aller lorsque l’on tapera l’url de DS Scheduler dans notre navigateur préféré. Pour cela, nous allons créer un alias vers le répertoire où nous mettrons notre soft. Ce répertoire, c’est /opt/sheduler, et donc http://monserveur/scheduler doit pointer vers /opt/scheduler/web. Modifiez le fichier /etc/apache2/sites-available/default et ajoutez-y ceci :

Alias /scheduler/ /opt/scheduler/web/
 
           AuthType Basic
           AuthName "DScheduler"
           AuthUserFile /opt/scheduler/.dwssapth
           require valid-user

Il va de soi que c’est à adapter à vos besoins… Remarquez un minimum de sécurité via un .htpasswd. Il nous reste d’ailleurs à générer un mot de passe :

htpasswd -c /opt/scheduler/.dwssapth

Sans oublier de recharger Apache :

service apache2 reload

Préparation de MySQL

Et oui, notre petit utilitaire a besoin d’une base MySQL pour fonctionner. Rien de bien compliquer rassurez-vous, il s’agit juste de lui créer une base de donnée. Inutile de vous expliquer comment faire… Cependant, je vous conseil de créer un utilisateur dédié, comme ceci :

user-ds-scheduler-phpmyadmin

On garde le mot de passe dans un coin pour le renseigner dans les fichiers de configuration. Enfin, vous pouvez exécuter le fichier sched_master.py pour créer les tables nécessaires dans votre base.

Installation

Après avoir récupéré et décompressé les sources, vous pouvez les placer dans /opt/scheduler. Bien, renseignons maintenant le mot de passe de la base de données dans le fichier sched_config.py :

# Database
dbconfig = {
         'dbhost' : 'localhost',
         'dbuser' : 'ds-scheduler',
         'dbpass' : 'ryJrNfabvK8avYda',
         'dbname' : 'ds-scheduler',
         }

Ainsi que dans web/dbconfig.php :

<!--?php    $username="ds-scheduler";    $password="ryJrNfabvK8avYda";    $database="ds-scheduler";    $dbserver="localhost"; ?-->

Et voilà, normalement vous devriez avoir une belle interface pour gérer vos tâches cron. Je ne peux pas vous faire de screen car malheureusement l’application ne fonctionne pas chez moi 🙁 Mais j’y travaille et je ferais un retour dès que je trouverai la cause de mon problème… Néanmoins, cela devrait ressemble à ceci :

ds-sched

Voilà à quoi cela ressemble chez moi :

ds-sched2

Mon problème : impossible d’exécuter un job. Allez savoir pourquoi… Donc si jamais quelqu’un trouve, qu’il se manifeste !


Source : admin-linux.org.

Cet article vous a plu ? Partagez-le sur les réseaux sociaux !

Twitter Facebook Google Plus email