Gestion des tâches planifiées eole-schedule
- Présentation
- Gestion des tâches planifiées
- Gestion des tâches uniques (once)
- Exemple de fichier XML
- Gestion des mises à jour avec Creole et eole-schedule
- Forcer l'exécution des tâches planifiées
- Lire les journaux de l'exécution des tâches planifiées
- Comment changer le jour de mise à jour d'un serveur EOLE ?
Présentation
Sur les modules EOLE, les tâches planifiées (comme par exemple les mises à jour, les sauvegardes, la purge de certaines informations, l'exportation de l'annuaire, des bases de données et des quotas disque ou encore les mises à des listes noires pour le filtrage proxy) sont gérées par eole-schedule
.
Contrairement à l'utilisation de cron, eole-schedule
permet de maîtriser les tâches planifiées même si la sauvegarde est activée.
Depuis la version 2.5 d'EOLE, eole-schedule
est géré depuis Tiramisu[1].
Le principe est le suivant :
Il existe 4 types de tâches planifiées :
- les tâches journalières : daily ;
- les tâches hebdomadaires : weekly ;
- les tâches mensuelles : monthly ;
- les tâches uniques : once.
Ces tâches sont découpées en pre-sauvegarde et post-sauvegarde.
Si aucune sauvegarde n'est prévue : le cron lance pre puis post à l'heure qui a été tirée au hasard.
Si une sauvegarde est prévue : Bareos lance pre avant la sauvegarde et post à l'heure qui a été tirée au hasard (sauf si celle-ci est prévue avant la sauvegarde ou si la sauvegarde n'est pas terminée, dans ce cas les tâches post sont exécutées après la sauvegarde).
Remarque
Les sauvegardes « post » sont obligatoirement marquées en Full
même si cela ne correspond à rien (pas de sauvegarde, exécution des scripts uniquement). Elles sont réalisées à l'heure qui a été tirée au hasard.
Par contre, les sauvegardes "pre" sont bien lancées à l'heure des sauvegardes définie par l'administrateur.
RemarqueDifférences par rapport à Schedule 2.3
La liste des scripts à activer est décrite dans un fichier XML[4] (dictionnaire). Ce système permet de mettre en place des valeurs par défaut. Ainsi, l'activation ou la désactivation d'un script n'est plus réalisée à l'installation du paquet ce qui est à la fois plus simple et plus sûr.
La description n'est plus dans le script. Elle est directement dans le fichier XML.
Les scripts pre/post sont maintenant mélangés dans le répertoire /usr/share/eole/schedule/scripts
.
Attention
À partir d'EOLE 2.6.1, l'option -m
(ou --mode
) du script manage_schedule
était obsolète, à partir des versions EOLE 2.7 l'option est supprimée.
Le mode (pre
ou post
) utilisé pour un script est forcément celui qui a été déclaré dans le dictionnaire[5] extra.
Gestion des tâches planifiées
Truc & astuceLister ce qui est programmé
# manage_schedule -l
Truc & astuceAjouter une tâche planifiée
# manage_schedule -a daily -s majblacklist
Truc & astuceSupprimer une tâche planifiée
# manage_schedule -d majblacklist
Truc & astuceAppliquer la configuration (génération des liens symboliques)
# manage_schedule --apply
Attention
L'ajout et la suppression n'appliquent pas la configuration. Il faut :
- soit l'appliquer à la main (
manage_schedule --apply
) ; - soit effectuer un
reconfigure
.
Gestion des tâches uniques (once)
Les scripts lancés pour une nuit sont gérés totalement différemment et les informations associées ne sont pas conservées dans Tiramisu.
Truc & astuceAjouter une une tâche planifiée unique
# manage_schedule -a once -s majauto
Truc & astuceSupprimer une une tâche planifiée unique
# manage_schedule -d once -s majauto
Remarque
La prise en compte des tâches uniques est instantanée.
L'appel à la méthode --apply n'est donc pas nécessaire.
Exemple de fichier XML
Les fichiers XML décrivant les tâches planifiées ont un format proche de celui des dictionnaires[5] Creole.
Exemple
Exemple du fichier : /usr/share/eole/creole/extra/schedule/01_majauto.xml
<creole>
<variables>
<family name='majauto'>
<variable name="description" type="string"><value>Mise à jour du serveur</value></variable>
<variable name="day" type="schedule"><value>weekly</value></variable>
<variable name="mode" type="schedulemod"><value>post</value></variable>
</family>
</variables>
</creole>
Gestion des mises à jour avec Creole et eole-schedule
La mise à jour hebdomadaire consiste en un script eole-schedule
nommé majauto
. Il est configuré pour être lancé une fois par semaine (weekly
) après la sauvegarde (post
).
Sa gestion dans les scripts python est facilitée par la librairie creole.maj
.
Truc & astuceSavoir quand est prévue la mise à jour
# python -c "from creole import maj; print maj.get_maj_day()"
Truc & astuceActiver/désactiver la mise à jour hebdomadaire
Activation de la mise à jour hebdomadaire :
# manage_schedule -a weekly -s majauto
# manage_schedule --apply
ou :
# python -c "from creole import maj; maj.enable_maj_auto(); print maj.maj_enabled()"
Désactivation de la mise à jour hebdomadaire :
# manage_schedule -d majauto
# manage_schedule --apply
ou :
# python -c "from creole import maj; maj.disable_maj_auto(); print maj.maj_enabled()"
Attention
Si la fréquence des tâches Schedule
est personnalisée dans l'interface de configuration du module, c'est cette dernière qui prévaut et l'activation/désactivation de la mise à jour hebdomadaire via l'EAD ou la commande manage_schedule n'est plus possible.
Forcer l'exécution des tâches planifiées
Il est possible de forcer l'exécution des tâches planifiées avec la commande /usr/share/eole/schedule/schedule cron.
root@amon:~# /usr/share/eole/schedule/schedule cron
Démarrage de pre schedule daily
pre schedule daily accompli
Démarrage de post schedule daily
. Test de http://eole.orion.education.fr/maj/blacklists => Ok
Téléchargement des bases
Rien à faire pour blacklists.tar.gz
Rien à faire pour le fichier weighted
eole-schedule - run-parts: executing /usr/share/eole/schedule/daily/post/majblacklist daily
post schedule daily accompli
Démarrage de pre schedule once
pre schedule once accompli
Démarrage de post schedule once
post schedule once accompli
root@amon:~#
Lire les journaux de l'exécution des tâches planifiées
Les journaux de l'exécution des tâches planifiées se trouvent dans le répertoire /var/log/rsyslog/local/eole-schedule/
.
Comment changer le jour de mise à jour d'un serveur EOLE ?
Le jour tiré au hasard pour les mises à jour ne me convient pas et je souhaiterais le changer.
root@eole:~# manage_schedule -l
Tâches planifiées EOLE :
* les tâches hebdomadaires se feront le vendredi à 05:35 (hors sauvegarde)
- après sauvegarde
+ Mise à jour du serveur (majauto)
root@eole:~#
Truc & astuce
Une solution consiste à supprimer le fichier de configuration /etc/eole/extra/schedule/config.eol
.
root@eole:~# rm /etc/eole/extra/schedule/config.eol
rm : supprimer fichier '/etc/eole/extra/schedule/config.eol' ? y
root@eole:~# manage_schedule -l
Tâches planifiées EOLE :
* les tâches hebdomadaires se feront le jeudi à 04:12 (hors sauvegarde)
- après sauvegarde
+ Mise à jour du serveur (majauto)
root@eole:~#
À partir d'EOLE 2.7.0, il est possible de fixer le jour et l'heure de la mise à jour hebdomadaire à l'aide de la commande CreoleSet
.
Truc & astuce
Pour paramétrer la mise à jour hebdomadaire le mercredi matin à 3h30, il faut exécuter les commandes suivantes :
root@eole:~# CreoleSet .schedule.schedule.weekday 3
root@eole:~# CreoleSet .schedule.schedule.hour 3
root@eole:~# CreoleSet .schedule.schedule.minute 30
Le jour choisi devra cependant être différent de celui choisi pour le "Jour des tâches mensuelles la première semaine du mois" (.schedule.schedule.monthday
).