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
.
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 -m post
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
.
Attention
À partir d'EOLE 2.6.1, l'option -m
(ou --mode
) est obsolète.
Le mode (pre
ou post
) utilisé pour un script est forcément celui qui a été déclaré dans le dictionnaire extra.
Les commandes actuelles sont toujours fonctionnelles mais sont susceptibles d'afficher des avertissements.
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 -m post
Truc & astuceSupprimer une une tâche planifiée unique
# manage_schedule -d once -s majauto -m post
Remarque
La prise en compte des tâches uniques est instantanée.
L'appel à la méthode --apply n'est donc pas nécessaire.
Attention
À partir d'EOLE 2.6.1, l'option -m
(ou --mode
) est obsolète.
Le mode (pre
ou post
) utilisé pour un script est forcément celui qui a été déclaré dans le dictionnaire extra.
Les commandes actuelles sont toujours fonctionnelles mais sont susceptibles d'afficher des avertissements.
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 -m post
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
ou :
# python -c "from creole import maj; maj.disable_maj_auto(); print maj.maj_enabled()"
Attention
À partir d'EOLE 2.6.1, l'option -m
(ou --mode
) est obsolète.
Le mode (pre
ou post
) utilisé pour un script est forcément celui qui a été déclaré dans le dictionnaire extra.
Les commandes actuelles sont toujours fonctionnelles mais sont susceptibles d'afficher des avertissements.
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
).