META-Schedule pour Windows NT v1.2

Introduction

Ce service NT a été écrit dans le but de compléter ou remplacer le service "Planning" fourni par Microsoft et qui se programme via des commandes "AT". META-Schedule présente les améliorations suivantes (entre autres) :

Bogues connus et améliorations

Version 1.3.0

Version 1.2.2

Version 1.2

Version 1.1

Version 1.0

Installation

L'installation du service est effectuée soit à travers des commandes de création de services telles que SC.EXE (disponible dans le NT Ressource Kit de Microsoft) ou, bien plus facilement, par le programme MSchedule.exe lui-même.

Pour installer le programme, créer un répertoire spécifique puis tapez: mschedule --install dans une fenêtre DOS. Dans ce même répertoire doit impérativement se trouver le fichier mschedule.ini contenant les commandes à scheduler.

Pour installer plusieur instances du scheduler, tapez: mschedule --install <file><file> est le fichier de configuration <file>.ini qui se trouve dans le même répertoire que le fichier mschedule.exe.

Note: Les fichiers de configurations doivent impérativement être placées dans le même répertoire que l'exécutable (et non dans le répertoire de Windows).

Liste des commandes

Commande externe

Permet de lancer une commande externe. La priorité spécifiée s'applique au programme externe. Dans le cas d'une commande interne (DEL, TYPE...), utiliser l'interpréteur de commande.
Si le programme dépasse son temps imparti pour s'exécuter, il sera détruit.
Les commandes externes autorisent l'utilisation des variables d'environnement %windir% sera remplacé par le répertoire où se trouve Windows.

[Backup]
CMD=Extern
Program=PKZIP25 -add %windir%\*.* D:\win_nt.zip
AT=10 1 * * 1-5

Commande DiskFree

Permet de vérifier l'espace disque restant. Un message mail est envoyé dès que l'espace disque tombe au-dessous des quotas spécifiés. Vous pouvez également vérifier l'espace de disques distant à conditions que vous ayez les droits d'accès sur le disque.

Note: l'activation des quotas sur des machines Windows 2000 peut renvoyer des données erronnées par rapport à la réalité physique.

[EspaceDisque]
CMD=DiskFree
C:\=50M
D:\=100M
AT=0 * * * *

Commande Service

L'un des intérêts principal du programme de scheduling est de pouvoir démarrer et arrêter des services NT. Au démarrage du service de scheduling

[SQLServer]
CMD=Service
NAME=W3Svc
PhysicalCheck=TRUE
AT=* * * * *

Commande ErrorFile

Cette commande vérifie la présence d'un fichier et si celui-ci est présent le transfère par courrier électronique puis l'efface.
Si aucun fichier (item File) n'est précisé, c'est le Dr WATSON (drwtsn32.log dans le répertoire de Windows) qui est pris en compte. Cela permet d'être automatiquement informé du plantage d'un programme.

[COREDUMP]
CMD=ErrorFile
AT=* * * * *

ou encore

[ERROR_TOTO]
CMD=ErrorFile
File=%windir%\toto.err
AT=* * * * *

Commande Copy

Cette commande effectue une copie de fichier. Le fichier source peut être sur un serveur distant (HTTP, HTTPS ou FTP), ou alors un disque.
Si le fichier source comporte l'extension .gz, celui-ci sera automatiquement décompressé. Il est important de noter que le fichier est entièrement lu en mémoire avant sa copie sur le disque local.
Cette fonctionnalité a été spécialement étudiée pour pré-calculer des pages ASP qui seront mises à jour toutes les heures par exemple.

Note: les fichiers de sources et de destinations peuvent utiliser l'extension de variables.

[PAGE_GARDE]
CMD=COPY
Source=http://www.videotruc.com/
Dest=c:\inetpub\wwwroot\index_video.htm
AT=1 * * * *

WEBSERVER

Cette commande vous permet d'activer un serveur WEB afin de contrôler l'activité du scheduler.

[Informations]
CMD=WebServer
Port=8088
AT=* * * * *


Cet exemple permet d'activer un serveur WEB 24h/24, 7j/7. Vous pouvez ainsi contrôler le temps CPU de chacune des commandes ainsi que le temps réel d'exécution.

Reboot

Cette commande est disponible pour des tests internes. Elle tente de rebooter la machine (dans l'exemple ci-dessous, à minuit le 31 décembre, c'est à dire au début de chaque année!). Il est fort possible que des programmes recevant la notification de fin de session refusent de s'interrompre, dans ce cas la commande de REBOOT est inefficace.

[Securite]
CMD=REBOOT
AT=0 0 1 1 *

Commande TimeSync

Permet de synchroniser l'horloge de votre machine à des serveurs de temps (via le protocole NTP). Si aucun serveur n'est précisé, le scheduler choisira des serveurs parmi une liste prédéfinie.
Pour une sécurité maximale, la synchronisation de votre serveur ne sera effectué que si le décalage est supérieur à 1 seconde. De même, si le serveur renvoie un décalage supérieur à 1 heure, aucune synchronisation n'est assurée. Pour optimiser la sécurité, on utilise trois serveurs de temps et on vérifie que ceux-ci sont eux-même synchronisés, ce qui permet d'assurer une sécurité optimale. Si vous ne précisez qu'un ou deux serveurs, vous risquez d'obtenir de moins bons résultats.
Je vous conseille de synchroniser votre machine la nuit, vers 5 ou 6 heures du matin, une fois les batchs terminés.
Il est vivement déconseillé de tenter une synchronisation à minuit à cause des décalages horaires!

[TimeSync]
CMD=TimeSync
truechimer.waikato.ac.nz=
ntp1.arnes.si=
vtserf.cc.vt.edu=
AT=10 5 * * *

Note: Cette commande n'est disponible que dans la version enregistrée.

Notes diverses

Expansion des variables

L'expansion des variables suit la règle suivante, si la variable correspond à une variable d'environnement, celle-ci est automatiquement étendue, dans le cas contraire, il y a tentative de correspondance avec les variables suivantes:

Notes:

Example: %WINDIR%\system32\toto.txt will be extended to "c:\winnt\system32\toto.txt".

Parallélisme

Le service de scheduling est entièrement multithreadé, chaque commande est exécutée dans son propre thread avec la priorité qui lui a été attribuée.

Fonctionnement de l'horloge

L'horloge interne est utilisée comme support de chronométrage, cependant, pour permettre un fonctionnement correct des commandes, si l'horloge système est avancée ou reculée, le service va rattraper le retard ou ralentir son rythme afin de se recaler sur l'horaire système. Cette technique assure que toutes les commandes seront correctement effectuées.
Exemple: une commande de sauvegarde est schédulée tous les jours à 5h30. Un administrateur système met à jour l'horloge de 5h25 à 5h32, la commande de sauvegarde sera tout de même exécutée.

Section de configuration

La section [Config] permet de spécifier des options spécifiques au programme. Entre autres, certaines informations par défaut:

Pour chacune des sections précisant une commande, les items suivants sont utilisés quelque soit la commande:

Améliorations

Les améliorations prévues sont les suivantes (dans le désordre):

Si des améliorations particulières vous semblent intéressantes, n'hésitez-pas à nous en faire part.

Limitations du freeware

Le service décrit ci-dessus est la version enregistrée du logiciel. La licence dite Freeware impose les limitations suivantes:

Commander

Vous pouvez commander le logiciel à l'adresse suivante (prix: 50 euros): https://www.yaskifo.com/order.asp?VENDOR=1878&LNG=FR.

Contact

Pour toute question sur le service, veuillez contacter William REY à l'adresse suivante: winnix@mindless.com.