Minicron Linux : un planificateur de tâches pour Dreambox / TGS100
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
Numéro de séquence unique = 001
Type de ligne 1 => Doit être exécuté une seule fois par jour
Ne pas exécuter si la date système est inférieure au 5 décembre 2005
Exécuter les lundi, mardi, mercredi, jeudi et vendredi
Exécuter les jours donnés à 08h00
Maximum 1 occurrence active a la fois
Ligne de commande = /usr/bin/monscript (avec paramètre 1)
002;2; 05/12/2005;MO;TU;WE;TH;FR;;;09:00;12:00;HOUR;1;1 ;Command………
Numéro de séquence unique = 002
Type de ligne 2 => Doit être exécuté plusieurs fois par jour
Ne pas exécuter si la date système est inférieure au 5 décembre 2005
Exécuter les lundi, mardi, mercredi, jeudi et vendredi
Exécuter les jours donnés, toutes les 1 heures, entre 08h00 et 12h00
Maximum 1 occurrence active a la fois
Ligne de commande = …..
003;2; 05/12/2005;MO;TU;WE;TH;FR;;;09:00;18:00;MIN;15;Command………
Numéro de séquence unique = 003
Type de ligne 2 => Doit être exécuté plusieurs fois par jour
Ne pas exécuter si la date système est inférieure au 5 décembre 2005
Exécuter les lundi, mardi, mercredi, jeudi et vendredi
Exécuter les jours donnés toutes les 15 minutes entre 09h00 et 18h00
Ligne de commande = …..
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