Minicron Linux : un planificateur de tâches pour Dreambox / TGS100

Home Page

 

La documentation au format PDF est téléchargeable ici   

 

L'utilitaire à installer sur Dreambox ou TGS100 est téléchargeable ICI

 

L'outil facilitant la configuration du planning (sous Windows) est  ICI

 

 

Décembre 2005

Objectif :

 

Permettre aux utilisateurs de Dreambox ou de TGS100, d’intervenir sur un planning d’exécution de travaux, éxécutés par l'OS Linux du récepteur.

-  Lancement de scripts (ex: récupérer l'EPG automatiquement)

-   Lancement de programmes divers

-    Lancement d’utilitaires ( ex : Backup )

 

 

Remarques :

 

Lorsqu’une ou plusieurs tâches sont lancées par le minicron, et qu’un incident empêche leur terminaison, l’outil est capable de les relancer, lors du redémarrage (reboot).

 

Principes :

 

- L’outil devra être capable de restituer :

-         Un journal (log ) des exécutions, en option.

-         Un compte-rendu d’exécution

 

- Chaque programme lancé sera ‘suivi’ individuellement, par un process dédié ou un Thread dédié.

 

- Les paramètres de planification peuvent être actualisés à tout moment par édition/modification du fichier paramètres, sans relance du minicron, et celui-ci détectera automatiquement qu’une mise à jour a eu lieu, afin de recalculer son planning dynamiquement

 

Lors du démarrage du minicron, celui-ci détecte :

-         S’il s’agit d’une ‘reprise’ suite à incident

-         S’il s’agit d’un démarrage normal

 

Chaque jour à minuit, minicron réinitialise la table des travaux pour la nouvelle journée qui démarre.

 

Ainsi, la table ne contient que les travaux planifiés pour le jour en cours ( ex : Lundi, Mardi, etc..)

 

Si, en cours de journée, une modification du fichier de paramètres est détectée, simulation d’une réinitialisation de minuit !

 

Installation de minicron sur le récepteur Linux :

 

Créez, sur le récepteur, un répertoire d’installation :

 

Ex : mkdir /media/usb/minicron ( ou /var/minicron sur TGS100, par exemple)

Ou

       mkdir /mnt/cf/minicron

      

(NOTE : Si possible, ne pas l’installer sur HDD, sinon le disque tournera en permanence ! ! !)

 

Transférez le fichier minicron.tar dans ce répertoire

 

Tapez la commande : tar xvf minicron.tar

 

Modifiez le fichier exemple todo.txt

 

Adaptez le script de lancement de minicron  runcron.sh (chemins)

 

Lancez le script runcron.sh

 

Le script de lancement de minicron (donné pour exemple)

 

Avec l’utilitaire, vous est fourni un script pour lancer minicron en tâche de fond (runcron.sh)

 

A vous de faire en sorte qu’il soit lancé à chaque boot de votre récepteur 

    ( en le mettant dans /etc/rc2.d/S99minicron, par exemple ou /var/etc/init/rcS sur TGS100 )

# Script de lancement de minicron

# Les variables suivantes doivent etre adaptees

# pour correspondre a l'installation de minicron

# sur votre Dreambox

# Note : les chemins doivent etre 'absolus' : ex : /media/usb/.....

#

#LOG_FILE=/usb/minicron/minicron.log;       export LOG_FILE

PARAMFILE=/usb/minicron/todo.txt;      export PARAMFILE

#

# Lancement du binaire minicron (en tache de fond)

#

./minicron &

 

Note : si la variable LOG_FILE n’est pas initialisée, il n’y aura pas de fichier log créé par minicron

 

Si elle est déclarée, un fichier log sera créé par minicron, ce qui permet de comprendre pourquoi certaines choses ne fonctionnent pas comme espéré.

 

La variable PARAMFILE est obligatoire, mais vous pouvez implanter le fichier de paramètres où vous voulez (un répertoire commun à toutes les images, par exemple, sur USB, CF , SD ou HDD)

 


Le fichier de paramètres de planification :

 

Description du fichier des paramètres de planification ( fichier texte de type Linux )

 

Chaque champ doit être séparé des autres par un point virgule ( ; )

 

format du fichier de paramètres :

 

TYPE                   1 byte            Type de ligne ( = 1 ou  2 )

VALID-DATE     10 bytes        Date de validité ( date à laquelle la commande doit être prise en compte)

DofW-1               2 bytes          = “MO” Si cette commande doit être exécuté chaque lundi

                                                  = “”Si cette commande ne doit pas être exécuté chaque lundi

DofW-2               2 bytes          = “TU” Si cette commande doit être exécuté chaque mardi

                                                  = “”Si cette commande ne doit pas être exécuté chaque mardi

DofW-3               2 bytes          = “WE” Si cette commande doit être exécuté chaque mercredi

                                                  = “”Si cette commande ne doit pas être exécuté chaque mercredi

DofW-4               2 bytes          = “TH” Si cette commande doit être exécuté chaque jeudi

                                                  = “”Si cette commande ne doit pas être exécuté chaque jeudi

DofW-5               2 bytes          = “FR” Si cette commande doit être exécuté chaque vendredi

                                                  = “”Si cette commande ne doit pas être exécuté chaque vendredi

DofW-6               2 bytes          = “SA” Si cette commande doit être exécuté chaque samedi

                                                  = “”Si cette commande ne doit pas être exécuté chaque samedi

DofW-7               2 bytes          = “SU” Si cette commande doit être exécuté chaque dimanche

                                                  = “”Si cette commande ne doit pas être exécuté chaque dimanche

TIME_1               5 bytes          Heure de début ( type 1 ou 2 )

                                                             Type 1 : la commande doit être exécutée à l’heure indiquée

                                                             Type 2 : la commande doit être exécutée la première fois à l’heure indiquée

TIME_2               5 bytes          Heure de fin ( type 2 uniquement  )

                                                             Type 2 : la commande doit être stoppée à l’heure indiquée

FREQ                  3 ou 4 bytes   Fréquence de fonctionnement  ( type 2 uniquement )

                                                             Doit contenir MIN pour minute, HOUR pour heure

INTERVAL         1 ou 2 bytes   Intervalle ( type 2 uniquement ) ( de 1 à 60, ou 1 à 24 )

OCCURRENCE  5 bytes max   Nombre d’occurrence maximum pour une commande

                                                             ( type 2 uniquement )

COMMAND       512 bytes max           Texte de la commande qui doit être exécutée

                                                             La commande peut contenir des points virgule

Elle doit être terminée par un NULL, Fin de fichier, ou une nouvelle ligne

Exemples :

 

001;1;05/12/2005;MO;TU;WE;TH;FR;;;08:00;1;/usr/bin/monscript 1

 

002;2; 05/12/2005;MO;TU;WE;TH;FR;;;09:00;12:00;HOUR;1;1 ;Command………

 

003;2; 05/12/2005;MO;TU;WE;TH;FR;;;09:00;18:00;MIN;15;Command………

 

Si, pendant que minicron est en cours d’execution, vous modifiez le fichier de paramètres (todo.txt dans l’exemple), minicron le détectera dans les 30 secondes suivantes, et réinitialisera sa table des tâches à executer, pour prendre en compte les modifications automatiquement.

 

Attention aux éditeurs Windows, genre notepad, car le fichier texte qu’ils génèrent n’est pas compatible Linux !

Si vous souhaitez l’adapter manuellement, utilisez plutôt ‘vi’ sur le récepteur, directement.

 

Si minicron détecte des erreurs dans le fichier ‘paramètres’, il crée un fichier ‘Error.log’ dans le répertoire où il a été lancé, avec la description de l’erreur, et ignore la ligne correspondante.

 

Un outil de configuration minicron (sous Windows) : Minicron_Edit :  mis à jour le 29/03/2006 en version 1.01

 

Vous pouvez installer sous Windows un Editeur de fichier paramètre, développé à cet effet.

 

Après téléchargement de l’utilitaire, installez-le dans un répertoire de votre choix : Aucune installation particulière n’est nécessaire : lancez simplement le Minicron_Edit.exe

 

Note : Pour manipuler les fichiers paramètres de Minicron Dreambox, il est préférable que Samba soit actif sur votre image Dreambox : Cela vous permettra d’ouvrir et modifier directement, à partir de l’outil, le fichier paramètre situé sur la Dreambox (todo.txt dans notre exemple).

 

Si vous n’avez pas Samba, vous pouvez :

Utiliser un outil FTP pour transférer EN MODE BINAIRE le fichier paramètre de la Dreambox vers votre PC

Utiliser Minicron_Edit pour modifier le fichier localisé sur votre PC

Utiliser le FTP pour renvoyer vers la Dreambox le fichier modifié, EN MODE BINAIRE : Minicron détectera la mise à jour et essayera de la prendre en compte dans les 30 secondes suivantes….

 

Vous devez sélectionner un fichier (même vide) pour pouvoir effectuer des adaptations, et finalement les sauvegarder dans ce fichier. Ce fichier doit exister : vous ne pouvez pas le créer à vide avec cet outil !

Après un ajout de ligne, une modification, une suppression de ligne, VOUS DEVEZ EXPLICITEMENT DEMANDER UN SAUVEGARDE, sinon vos modifications ne seront pas mémorisées.

 

A vous de jouer !

Si vous le mettez en oeuvre, merci de me donner votre avis par un petit mail à domi@dambrain.fr