Tâches périodiques : emuperiodic

Afin de créer des rapports utiles, il est nécessaire de peupler le module Statistiques d'enregistrements significatifs. Dans le cas le plus simple il est possible de créer des enregistrements statistiques manuellement en rassemblant les informations système et en insérant de nouveaux enregistrements statistiques avec les clés, dates, heures et valeurs voulues. Cependant il ne prendrait pas longtemps avant que quelqu'un oublie d'ajouter les enregistrements nécessaires rendant ainsi l'analyse incomplète.

La fonction Tâches périodiques fournit une structure dans laquelle exécuter les tâches sur une base régulière. Chaque tâche est un script perl générant un ou plusieurs enregistrements à insérer dans la table estatistics. Au cœur de cette structure se trouve le programme emuperiodic.

Le script emuperiodic est exécuté à intervalles réguliers pour générer des informations statistiques. Son objectif principal est d'appeler tous les scripts de tâches pour une période donnée (horaire, quotidienne, hebdomadaire, mensuelle). Le message d'utilisation de emuperiodic est :

Usage: emuperiodic [-q] [-l] [-d yyyy:mm:dd[:HH:MM:SS]] period [script...]

où :

-d yyyy:mm:dd[:HH:MM:SS]

est la date à utiliser pour les tâches périodiques.

-l

exécute seulement les scripts locaux (local/etc/periodic).

-q

spécifie le mode silencieux, c.-à-d. ne produisant pas le progrès.

period

spécifie la période pour laquelle les données statistiques sont générées. Valeurs permises :

  • daily (quotidiennement)
  • hourly (d'heure en heure)
  • monthly (mensuellement)
  • weekly (hebdomadaire)

Si nécessaire il est possible d'ajouter d'autres périodes, par exemple fortnightly (bimensuelle).

Si un ou plusieurs scripts sont saisis sur la ligne de commande, seul le ou les scripts nommés dans le répertoire périodique seront exécutés. Par défaut, tous les scripts sont exécutés.

Le cron de programmateur de tâche d'Unix est employé pour exécuter emuperiodic aux intervalles requis. Les entrées de crontab employées pour invoquer emuperiodic sont :

#

# Run periodic tasks

#

30 * * * * /home/emu/client/bin/emurun emuperiodic hourly 2>&1 | /home/emu/client/bin/emurun emulogger -t "KE EMu Periodic Tasks Report" periodic

0 6 * * * /home/emu/client/bin/emurun emuperiodic daily 2>&1 | /home/emu/client/bin/emurun emulogger -t "KE EMu Periodic Tasks Report" periodic

30 6 * * 0 /home/emu/client/bin/emurun emuperiodic weekly 2>&1 | /home/emu/client/bin/emurun emulogger -t "KE EMu Periodic Tasks Report" periodic

0 7 1 * * /home/emu/client/bin/emurun emuperiodic monthly 2>&1 | /home/emu/client/bin/emurun emulogger -t "KE EMu Periodic Tasks Report" periodic

Le tableau ci-dessous montre quand chaque instance d'emuperiodic est exécutée :

Commande

Exécuté

emuperiodic hourly

30 minutes après l'heure étant analysée.

emuperiodic daily

6 heures après le jour étant analysé.

emuperiodic weekly

6 heures et 30 minutes après la semaine étant analysée, le dimanche matin.

emuperiodic monthly

7 heures après le mois étant analysé.

Tous les résultats d’exécution des tâches périodiques sont envoyés à emulogger qui place les résultats dans un fichier basé sur la date actuelle (aaaa-mm-dd) dans le répertoire logs/periodic. Les fichiers journaux constituent un point de départ utile si vous suspectez un problème dans l'exécution des tâches périodiques. Comme vous pouvez le constater, chaque période de tâche est appelée après la période pour laquelle elle génère des statistiques. L'exécution est retardée afin de permettre à toute activité lancée dans la période de tâche de se terminer avant l'exécution des tâches périodiques. Il est également important de s'assurer qu’aucune routine de maintenance du système est en cours d'exécution en même temps que les tâches périodiques, sinon l'accès aux tables requises peut être refusé.

Quand emuperiodic est invoqué il recherche les tâches périodiques stockées soit dans :

  • etc/periodic/period

    -OU-

  • local/etc/periodic/period

    period est l'argument fourni à emuperiodic (par exemple, horaire). Chaque tâche est un script perl avec une extension .pl (bibliothèque perl). Si plus d'une tâche est trouvée dans les répertoires ci-dessus, chacune d’entre elles est exécutée séquentiellement dans l'ordre alphabétique. Les tâches dans local/etc/periodic remplacent les scripts portant le même nom dans etc/periodic.