Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
utilisateurs:draco31.fr:brouillon [Le 13/03/2009, 11:36] draco31.fr |
utilisateurs:draco31.fr:brouillon [Le 19/08/2012, 23:16] (Version actuelle) draco31.fr |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>éducation réflexion}} | + | ====== ∴☆★ Ceci est ma page BROUILLON !! ★☆∴ ====== |
- | ====== Suite de logiciels éducatifs AbulEdu ====== | + | ===== NUT & upsmon & upssched ===== |
- | <note> | + | ==== Monitorer les événements de l'UPS avec upsmon ==== |
- | ** Informations générales** | + | |
- | Auteur : L'équipe de développement Le Terrier d'AbulÉdu | + | === Configuration par défaut === |
- | Dernière version : AbulÉdu 8.08.0 | + | Par défaut, toutes les types d’événements sont associés aux directives **SYSLOG** (écriture dans ''/var/log/syslog'') et **WALL** (notification aux utilisateurs par les terminaux). |
+ | <note warning>FIXME Sous Ubuntu, la notification par la commande **''wall''** ne semble pas fonctionner !</note> | ||
- | Site officiel : [[http://www.abuledu.org/]] | + | Le fichier **''/etc/nut/upsmon''** contient donc les lignes suivantes : |
+ | <file> | ||
+ | NOTIFYFLAG ONLINE SYSLOG+WALL | ||
+ | NOTIFYFLAG ONBATT SYSLOG+WALL | ||
+ | NOTIFYFLAG LOWBATT SYSLOG+WALL | ||
+ | NOTIFYFLAG FSD SYSLOG+WALL | ||
+ | NOTIFYFLAG COMMOK SYSLOG+WALL | ||
+ | NOTIFYFLAG COMMBAD SYSLOG+WALL | ||
+ | NOTIFYFLAG SHUTDOWN SYSLOG+WALL | ||
+ | NOTIFYFLAG REPLBATT SYSLOG+WALL | ||
+ | NOTIFYFLAG NOCOMM SYSLOG+WALL | ||
+ | NOTIFYFLAG NOPARENT SYSLOG+WALL | ||
+ | </file> | ||
- | La documentation : [[http://docs.abuledu.org/wiki/doku.php]] | + | Dans **''/var/log/syslog''**, on obtient un message préformaté. Exemple : |
+ | <file> | ||
+ | Aug 19 21:49:34 localhost upsmon[7784]: Startup successful | ||
+ | Aug 19 21:50:24 localhost upsmon[7786]: UPS localups@localhost on battery | ||
+ | Aug 19 21:50:34 localhost upsmon[7786]: Poll UPS [localups@localhost] failed - Data stale | ||
+ | Aug 19 21:50:34 localhost upsmon[7786]: Communications with UPS localups@localhost lost | ||
+ | Aug 19 21:50:39 localhost upsmon[7786]: Communications with UPS localups@localhost established | ||
+ | Aug 19 21:50:39 localhost upsmon[7786]: UPS localups@localhost on line power | ||
+ | </file> | ||
- | </note> | + | <note>//Dans l'exemple ci-dessus ''localups'' est le libellé associé à l'onduleur dans le fichier **''/etc/nut/ups.conf''**//</note> |
+ | === Utilisation d'un script via l'option NOTIFYCMD et la directive EXEC=== | ||
- | ---- | + | Il est possible en plus ou la place des directives WALL et SYSLOG, d'utiliser la directive **''EXEC''** pour lancer un script définit par l'option **''NOTIFYCMD''** pour réaliser un traitement personnalisé. |
+ | Le fichier de configuration **''/etc/nut/upsmon.conf''** contiendra donc la ligne : | ||
+ | <file> | ||
+ | NOTIFYCMD /usr/local/bin/upsalert.sh | ||
+ | </file> | ||
+ | <note tip>Le chemin ''/usr/local/bin/upsalert.sh'' est à remplacer par celui votre script !</note> | ||
- | ===== Présentation ===== | + | Les options NOTIFYFAG concernée par ce traitement personnalisée doivent avoir la directive EXEC. Exemple pour ''ONLINE'' et ''ONBATT'' et ''LOWBATT'' : |
+ | <file> | ||
+ | NOTIFYFLAG ONLINE SYSLOG+WALL+EXEC | ||
+ | NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC | ||
+ | NOTIFYFLAG LOWBATT SYSLOG+WALL+EXEC | ||
+ | NOTIFYFLAG FSD SYSLOG+WALL | ||
+ | NOTIFYFLAG COMMOK SYSLOG+WALL | ||
+ | NOTIFYFLAG COMMBAD SYSLOG+WALL | ||
+ | NOTIFYFLAG SHUTDOWN SYSLOG+WALL | ||
+ | NOTIFYFLAG REPLBATT SYSLOG+WALL | ||
+ | NOTIFYFLAG NOCOMM SYSLOG+WALL | ||
+ | NOTIFYFLAG NOPARENT SYSLOG+WALL | ||
+ | </file> | ||
- | **AbulÉdu est une solution logicielle libre entièrement en français à destination des établissements scolaires, fondée sur une distribution GNU/Linux.** {{ :logo_abuledu_ryxeo.png|Logo Abuledu}} | + | FIXME Le script reçoit en argument le même libellé que ce qui est tracé dans ''/var/log/syslog''. |
- | AbulÉdu est destinée à faciliter l’implantation et l’usage d’un réseau informatique dans un établissement scolaire et conçue pour être utilisée au quotidien par des enseignants sans compétences initiales en informatique. | + | == Notification par mail == |
- | AbulÉdu est une solution d’aide à la gestion du réseau informatique. À ce titre, elle inclut des outils, une infrastructure, de la documentation, du support professionnel accompagné de services de développement personnalisés pour adapter la solution à vos besoins. Lorsque l’on met en place la solution dans un établissement (école, collège, lycée, association, administration, centre de formation, entreprise...), on crée de fait un «réseau AbulÉdu». | + | <note warning>Votre modem ainsi que vos équipements réseaux reliant ce dernier au PC hébergeant upsmon serveur (relié à l'onduleur) et upsmon client (celui exécutant le script) doivent aussi être alimentés pour pouvoir envoyer le mail au moment opportun. Dans le cas contraire, vous risquez de ne recevoir le mail que lorsque le courant revient, voir de ne pas recevoir le mail du tout !!</note> |
- | {{:abuledu-bureau_cycle3.png|Copie d'écran d'un profil utilisateur de cycle 3}} | + | ** Choix d'un MTA accessible en console ** |
- | Depuis la création de la première version en 1999, AbulÉdu offre un dispositif de filtrage des sites web indésirables nommé [[:squid-squidguard]] qui assure le filtrage et le contrôle des sites webs consultés dans les établissements pour protéger les mineurs des sites pornographiques, violents, racistes et autres indésirables. | + | Plusieurs MTA (mail transfert agent) accessible en console sont disponibles dans les dépôts. Parmi ceux-ci on notera : |
+ | * [[:ssmtp]] : Très simple d'utilisation | ||
+ | * [[:mutt]] : plus évolué que ''ssmtp'' et ligne de commande plus complexe | ||
+ | * [[:postfix]] : le plus puissant, mais aussi plus compliqué à configurer ! | ||
- | AbulÉdu est une des solutions logicielles libres recommandées par le Ministère de l’Éducation Nationale. | + | ** Installation et configuration avec SSMTP ** |
- | <note important>Il est important de garder à l’esprit qu’AbulÉdu est une **distribution GNU/Linux** évolutive, afin de répondre aux besoins (grandissants, de par les nouveaux programmes éducatifs) de chaque utilisateur. Si vous utilisez cette distribution, n’hésitez pas à faire remonter vos remarques/suggestions/critiques à supportteam@ryxeo.com. Ils s'efforceront de répondre à vos attentes dans les meilleurs délais.</note> | + | Exemple avec ''ssmtp'' : |
+ | * [[:tutoriel:comment_installer_un_paquet|Installer le paquet]] **[[apt>ssmtp]]** | ||
+ | * [[:tutoriel:comment_modifier_un_fichier|Modifier le fichier]] **''/etc/ssmtp/ssmtp.conf''** suivant l'exemple ci-dessous :<file> | ||
+ | root=mon-adresse-email@mon-fai.fr 25 | ||
+ | mailhub=smtp.fai.fr | ||
+ | hostname=ubuntu-desktop | ||
+ | FromLineOverride=YES | ||
+ | </file> | ||
+ | * Depuis un [[:terminal]], faites un essai avec la commande ci-dessous :<code>ssmtp <mon-adresse-email@mon-fai.fr></code>entrez le texte suivant :<code>From: mon-adresse-email@mon-fai.fr | ||
+ | Subject: Test envoi mail avec ssmtp | ||
+ | Test réussi ! Bravo ! | ||
+ | </code>et enfin, appuyez sur la combinaison CTRL+D pour terminer la saisie et envoyer le mail. | ||
- | ===== Pré-requis ===== | + | ** Création du script de notification mail ** |
- | **Configuration minimale conseillée.** | + | |
- | * Un serveur : Pentium III à 500 MHz, 256 Mo de RAM et 20 Go de disque dur. | + | <note> A METTRE EN FORME --- Brouillon</note> |
- | * Un réseau : Carte réseau 10/100 Mb/s compatible GNU/Linux | + | Créer un fichier pour l'entête avec une ligne From: ; To: ; Subject: : Ces données sont invariantes dans le message. |
- | * Des terminaux graphiques : Pentium III à 500 MHz, 256 Mo de RAM et 20 Go de disque dur. | + | Créer le script contenant les lignes : |
+ | <code>#!/bin/bash | ||
+ | echo "$@" | cat </chemin/fichier/entête> - | ssmtp <mon-adresse-mail@mon-fai.fr> | ||
+ | </code> | ||
+ | FIXME : Non testé : à vérifier si ça marche bien :p | ||
+ | <note tips>Vous pouvez modifier le libellé par défaut associé à chaque événement dans le fichier upsmon.conf : | ||
+ | <file> | ||
+ | NOTIFYMSG ONLINE "UPS %s sur secteur." | ||
+ | NOTIFYMSG ONBATT "UPS %s sur batterie." | ||
+ | NOTIFYMSG LOWBATT "UPS %s batterie faible." | ||
+ | NOTIFYMSG FSD "UPS %s: arrêt forcé en cours." | ||
+ | NOTIFYMSG COMMOK "Communications avec l'UPS %s établie." | ||
+ | NOTIFYMSG COMMBAD "Communications avec l'UPS %s perdue." | ||
+ | NOTIFYMSG SHUTDOWN "Déconnexion et arrêt automatiques engagés." | ||
+ | NOTIFYMSG REPLBATT "UPS %s La batterie doit être remplacée." | ||
+ | NOTIFYMSG NOCOMM "UPS %s indisponible." | ||
+ | NOTIFYMSG NOPARENT "mort du processus upsmon parent - arrêt impossible" | ||
+ | </file></note> | ||
- | ===== Les logiciels pédagogiques d'AbuEdu ===== | + | === Utilisation de upssched === |
- | |[[:AbulÉdu_A_nous_les_nombres|A nous les nombres]]|logiciel de mathématiques composé de plusieurs modules concernant la construction du nombre| | + | Si vous souhaitez effectuer des actions différentes selon le type d'événement, il est préférable d'utiliser upssched. |
- | |[[:AbulÉdu_CrokNotes|CrokNotes]]|saisir rapidement les notes des élèves et calculer automatiquement les moyennes| | + | |
- | |[[:AbulÉdu_Chemin|Chemin]]|permet acquérir des compétences de repérages dans l’espace| | + | |
- | |[[:AbulÉdu_Calculs|Calculs]]|calcul mental tout en jouant au Tétris| | + | |
- | |[[:AbulÉdu_Labyrinthe|Labyrinthe]]|logiciel pouvant permettre de travailler des compétences spatiales| | + | |
- | |[[:AbulÉdu_Le microscope virtuel|Le microscope virtuel]]|simulation de l’utilisation d’un microscope électronique| | + | |
- | |[[:AbulÉdu_Opérations|Opérations]]|Logiciel d'aide à la technique opératoire (additions, soustractions, multiplications)| | + | |
- | |[[:AbulÉdu_Suites|Suites]]|Logiciel de découverte des suites numériques| | + | |
- | |[[:AbulÉdu_Symcolor|Symcolor]]|logiciel destiné à la construction du principe de symétrie| | + | |
- | |[[:AbulÉdu_Tableaux|Tableaux]]|choix du type de support de travail, les lapins, les bateaux, maisons, papillons...| | + | |
- | |[[:AbulÉdu_Associations|Associations]]|association d’images et de mots, il est dédié au travail en lecture (combinatoire) Cycle 2| | + | |
- | |[[:AbulÉdu_Kidstoryboard|Kidstoryboard]]|création multimédia tel que des albums ou des pages web| | + | |
- | |[[:AbulÉdu_Aller|Aller]]|entrainement à la lecture| | + | |
- | |[[:AbulÉdu_Mulot|Mulot]]|apprentissage avec la souris| | + | |
- | Des applications courantes tels que [[:OpenOffice.org]], Mozilla [[:Firefox]] et [[:Thunderbird]], [[:GIMP]], [[:Gthumb]], [[:InkScape]], [[:Audacity]], [[:VLC]], ... pourront être également installées. | + | fichier upsmon.conf (exemple) : |
- | ===== Installation ===== | + | <file> |
+ | NOTIFYCMD /sbin/upssched | ||
- | Toute la [[http://docs.abuledu.org/abuledu/installation/installation|procédure d'installation est documentée sur le site]]. | + | NOTIFYFLAG ONLINE SYSLOG+WALL+EXEC |
+ | NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC | ||
+ | NOTIFYFLAG LOWBATT SYSLOG+WALL+EXEC | ||
+ | NOTIFYFLAG FSD SYSLOG+WALL+EXEC | ||
+ | NOTIFYFLAG COMMOK SYSLOG+EXEC | ||
+ | NOTIFYFLAG COMMBAD SYSLOG+EXEC | ||
+ | NOTIFYFLAG SHUTDOWN SYSLOG+WALL+EXEC | ||
+ | NOTIFYFLAG REPLBATT SYSLOG+WALL+EXEC | ||
+ | NOTIFYFLAG NOCOMM SYSLOG+WALL+EXEC | ||
+ | NOTIFYFLAG NOPARENT SYSLOG+WALL+EXEC | ||
+ | </file> | ||
- | ===== Administration ===== | + | Créer le fichier de config /etc/nut/upssched.conf |
+ | <file> | ||
+ | # the script to be executed | ||
+ | CMDSCRIPT /usr/local/bin/upsalert.sh | ||
- | L'administration courante du serveur de réseau AbulÉdu se fait au travers du navigateur web. | + | # mandatory fields that must be set before AT commands |
+ | PIPEFN /var/run/nut/upssched.pipe | ||
+ | LOCKFN /var/run/nut/upssched.lock | ||
- | {{:abuledu-webadmin_gestion_des_utilisateurs.png?515}} | + | # the timers, here 30 sec after the ONBATT (ups on battery) event |
+ | AT ONBATT * START-TIMER onbatt-timer 120 | ||
- | ===== Liens ===== | + | # cancel the countdown is power is back |
- | [[http://www.abuledu.org|Site officiel]] | + | AT ONLINE * CANCEL-TIMER onbatt-timer |
- | [[http://docs.abuledu.org/wiki/doku.php|Wiki Documentation AbulEdu]] | + | AT COMMBAD * EXECUTE commbad |
+ | AT COMMOK * EXECUTE commok | ||
+ | AT NOCOMM * EXECUTE nocomm | ||
+ | AT ONBATT * EXECUTE onbatt | ||
+ | AT LOWBATT * EXECUTE lowbatt | ||
+ | AT ONLINE * EXECUTE online | ||
+ | AT FSD * EXECUTE fsd | ||
+ | AT SHUTDOWN * EXECUTE shutdown | ||
+ | AT REPLBATT * EXECUTE replbatt | ||
+ | AT NOPARENT * EXECUTE noparent | ||
+ | </file> | ||
- | [[http://abuledu.com|Services professionnels proposés pour AbulÉdu]] | + | Créer le script /usr/local/bin/upsalert.sh (FIXME exemple à revoir) |
+ | <file> | ||
+ | #!/bin/bash | ||
+ | logfile=/var/log/ups.log | ||
+ | date=$(date +"%F %T") | ||
- | [[http://libre.pedagosite.net|Documents d'intérêts pédagogiques libres]] | + | case $1 in |
+ | commbad) | ||
+ | echo "$date : UPS communications failure." >> $logfile | ||
+ | ;; | ||
+ | commok) | ||
+ | echo "$date : UPS communications restored." >> $logfile | ||
+ | echo "$date : Current status=[$(/bin/upsc localups ups.status)], Charge=$(/bin/upsc localups battery.charge)%, Load=$(/bin/upsc localups ups.load)%." >> $logfile | ||
+ | sudo /bin/upscmd -u login -p pwd localups beeper.enable 2>> $logfile | ||
+ | ;; | ||
+ | nocomm) | ||
+ | echo "$date : UPS communications cannot be established." >> $logfile | ||
+ | ;; | ||
+ | onbatt) | ||
+ | echo "$date : UPS is on battery. Trying to suspend." >> $logfile | ||
+ | echo "$date : Current status=[$(/bin/upsc localups ups.status)], Charge=$(/bin/upsc localups battery.charge)%, Load=$(/bin/upsc localups ups.load)%." >> $logfile | ||
+ | sudo /bin/upscmd -u login -p pwd localups beeper.mute 120 2>> $logfile | ||
+ | sudo /usr/sbin/pm-suspend-hybrid --quirk-none 2>&1 >> $logfile | ||
+ | ;; | ||
+ | onbatt-timer) | ||
+ | echo "$date : UPS is on battery for more than 2 min. Trying to hibernate." >> $logfile | ||
+ | $echo "$date : Current status=[$(/bin/upsc localups ups.status)], Charge=$(/bin/upsc localups battery.charge)%, Load=$(/bin/upsc localups ups.load)%." >> $logfile | ||
+ | sudo /bin/upscmd -u login -p pwd localups beeper.mute 300 2>> $logfile | ||
+ | sudo /usr/sbin/pm-hibernate --quirk-none 2&>1 >>$logfile | ||
+ | ;; | ||
+ | lowbatt) | ||
+ | echo "$date : UPS has a low battery. Current load=$(/bin/upsc localups ups.status)%. Trying forced-shutdown." >> $logfile | ||
+ | echo "$date : Current status=[$(/bin/upsc localups ups.status)], Charge=$(/bin/upsc localups battery.charge)%, Load=$(/bin/upsc localups ups.load)%." >> $logfile | ||
+ | sleep 1 | ||
+ | sudo /bin/upscmd -u login -p pwd localups beeper.enable 2>> $logfile | ||
+ | sudo /sbin/upsmon -c fsd 2>&1 >> $logfile | ||
+ | ;; | ||
+ | online) | ||
+ | echo "$date : UPS on line. Shutdown aborted." >> $logfile | ||
+ | echo "$date : Current status=[$(/bin/upsc localups ups.status)], Charge=$(/bin/upsc localups battery.charge)%, Load=$(/bin/upsc localups ups.load)%." >> $logfile | ||
+ | sudo /bin/upscmd -u login -p pwd localups shutdown.stop | ||
+ | sleep 1 | ||
+ | sudo /sbin/upsmon -K && echo "$date : WARN : fsd flag is still on !" >> $logfile | ||
+ | sudo /bin/upscmd -u login -p pwd localups beeper.enable 2>$logfile | ||
+ | ;; | ||
+ | fsd) | ||
+ | echo "$date : UPS is being forced-shutdown by the master." >> $logfile | ||
+ | echo "$date : Current status=[$(/bin/upsc localups ups.status)], Charge=$(/bin/upsc localups battery.charge)%, Load=$(/bin/upsc localups ups.load)%." >> $logfile | ||
+ | sleep 1 | ||
+ | sudo /bin/upscmd -u login -p pwd localups beeper.mute 300 2>> $logfile | ||
+ | ;; | ||
+ | shutdown) | ||
+ | echo "$date : The system is being shutdown." >> $logfile | ||
+ | echo "$date : Current status=[$(/bin/upsc localups ups.status)], Charge=$(/bin/upsc localups battery.charge)%, Load=$(/bin/upsc localups ups.load)%." >> $logfile | ||
+ | sudo /bin/upscmd -u login -p pwd localups beeper.mute 300 2>> $logfile | ||
+ | ;; | ||
+ | replbatt) | ||
+ | echo "$date : UPS battery is bad and needs to be replaced !!!" >> $logfile | ||
+ | echo "$date : Current status=[$(/bin/upsc localups ups.status)], Charge=$(/bin/upsc localups battery.charge)%, Load=$(/bin/upsc localups ups.load)%." >> $logfile | ||
+ | sudo /bin/upscmd -u login -p pwd localups beeper.enable 2>> $logfile | ||
+ | ;; | ||
+ | noparent) | ||
+ | echo "$date : The process that shuts down the system has died (shutdown impossible)." >> $logfile | ||
+ | sudo /sbin/shutdown -h now 2>&1 >> $logfile | ||
+ | ;; | ||
+ | *) | ||
+ | echo "$date : $0 > Unrecognized command: $1" | tee -a $logfile 1>&2 | ||
+ | echo "$date : Current status=[$(/bin/upsc localups ups.status)], Charge=$(/bin/upsc localups battery.charge)%, Load=$(/bin/upsc localups ups.load)%." >> $logfile | ||
+ | ;; | ||
+ | esac | ||
+ | exit 0 | ||
+ | </file> | ||
- | === A faire === | + | ====== Réduire le nombre d'écriture sur disque pour les log et sauver la vie du SSD Ryan ====== |
- | Fusionner avec la page [[:le_terrier|le terrier]] de ce même wiki. | + | - Créer un dossier pour les log permanentes : sudo mkdir -p /var/log.hdd/ |
+ | - Modifier le fichier de config de /etc/logrotate.conf et ajouter la ligne ''olddir /var/log.hdd/'' : | ||
+ | <file> | ||
+ | # see "man logrotate" for details | ||
+ | # rotate log files weekly | ||
+ | weekly | ||
- | Création des pages Logiciels. | + | # keep 4 weeks worth of backlogs |
+ | rotate 4 | ||
- | ---- | + | # create new (empty) log files after rotating old ones |
+ | create | ||
+ | # uncomment this if you want your log files compressed | ||
+ | #compress | ||
- | //Contributeurs// : [[arnomuch]], erics | + | olddir /var/log.hdd/ |
- | //Basé sur : Site officiel, Wiki Documentation AbulEdu// | + | # packages drop log rotation information into this directory |
+ | include /etc/logrotate.d | ||
- | {{tag>synthèse_des_jeux}} | + | # no packages own wtmp, or btmp -- we'll rotate them here |
+ | /var/log/wtmp { | ||
+ | missingok | ||
+ | monthly | ||
+ | create 0664 root utmp | ||
+ | rotate 1 | ||
+ | } | ||
+ | |||
+ | /var/log/btmp { | ||
+ | missingok | ||
+ | monthly | ||
+ | create 0660 root utmp | ||
+ | rotate 1 | ||
+ | } | ||
+ | |||
+ | # system-specific logs may be configured here | ||
+ | </file> | ||
+ | - Modifier /etc/fstab pour charge /var/log sur un tmpfs : | ||
+ | <file> | ||
+ | # dossier en RAM (volatile) | ||
+ | tmpfs /tmp tmpfs defaults 0 0 | ||
+ | tmpfs /var/tmp tmpfs defaults 0 0 | ||
+ | tmpfs /var/lock tmpfs defaults 0 0 | ||
+ | tmpfs /var/log tmpfs defaults 0 0 | ||
+ | </file> | ||
+ | |||
+ | <note important>Il est possible de s'arrêter là, si le système est rarement rebooté, et que l'on accepte de perdre les logs depuis la dernière rotation</note> | ||
+ | |||
+ | === Mod easy === | ||
+ | |||
+ | <note tip>FIXME devrait bien marcher pour systèmes avec peu de reboot, et permet de ne perdre aucun log !!</note> | ||
+ | |||
+ | - FIXME Créer un script dans /etc/init.d/ qui appele logrotate en mode forcé pour recopier les log dans /var/log.hdd si appelé avec ''stop'' | ||
+ | <code>#!/bin/sh | ||
+ | case "$1" in | ||
+ | stop) | ||
+ | logrotate -f /etc/logrotate.conf | ||
+ | ;; | ||
+ | *) | ||
+ | #no-op | ||
+ | ;; | ||
+ | esac | ||
+ | exit 0 | ||
+ | </code> | ||
+ | - Lier le script dans /etc/rc0.d/S39savelogs | ||
+ | |||
+ | > Le mieux serait de faire un service qui écoute le bon événement et ferait la manip juste avant le démontage (S40umountfs). | ||
+ | |||
+ | <note warning>Cela ne respecte pas les règles logrotate (daily, weekly ...) donc risque de perdre rapidement des données si peu de génération sont conservées pour un fichier donné !</note> | ||
+ | |||
+ | === Mod avancé === | ||
+ | - FIXME Créer un script dans /etc/init.d qui fait : | ||
+ | * en stop : copie des fichiers de /var/log vers /var/log.hdd && umount de /var/log && création des liens symboliques avec le même nom que les fichiers copiés de /var/log vers /var/log.hdd (ou lien symbolique des dossiers directement) FIXME utiliser le contenu de /var/lib/logrotate/status ? (cf. /etc/cron.daily/logrotate ) | ||
+ | * en start (juste après mount), copier les log de /var/log/ à la suite des fichiers existant puis écrasement des fichiers de /var/log/ par ceux de /var/log.hdd | ||
+ | |||
+ | <note warning>FIXME besoin de créer 2 liens symbolique différents : nécessité de tester le nom d'appel pour vérifier si Start ou Stop && avant/après mount/umount. start + après mount = OK ; stop + avant umount = OK ; sinon ne rien faire.</note> |