#!/bin/bash
# INSTALL
#apt install freeipmi-tools ipmitool
# foutre ce script dans une tache cron qui se lance toutes les 15mn
# CONFIG
# dossier dans lequel la partie php est présente
dossier="/var/www/html/ipmiweb"
# l'adresse IP... MI
ipmid=192.168.1.19
# le mot de passe IPMI
ipmipass="My fuckin secure P4ssW0rd! (lol)"
cd ${dossier} || exit 1
echo "lst"
ipmitool -I lanplus -H ${ipmid} -U root -P ${ipmipass} sdr list full > ${dossier}/ipmi-lst.log
while [ ! -s ${dossier}/ipmi-lst.log ]
do
ipmitool -I lanplus -H ${ipmid} -U root -P ${ipmipass} sdr list full > ${dossier}/ipmi-lst.log
done
# Temp | 41 degrees C | ok
#Fan 4A | 0 RPM | cr
echo '
' > ${dossier}/ipmi-lst.html
echo 'Sonde | Valeur | État |
' >> ${dossier}/ipmi-lst.html
while read INPUT ; do echo "${INPUT//|/ | } |
" ; done < ${dossier}/ipmi-lst.log >> ${dossier}/ipmi-lst.html
echo '
' >> ${dossier}/ipmi-lst.html
echo "events"
ipmitool -I lanplus -H ${ipmid} -U root -P ${ipmipass} sel list last 10 > ${dossier}/ipmi-events.log
# 1 | 06/06/2019 | 21:26:54 | Event Logging Disabled #0x51 | Log area reset/cleared | Asserted
echo '' > ${dossier}/ipmi-events.html
echo 'ID | Date | Heure | Type | Évènement | Confirmation |
' >> ${dossier}/ipmi-events.html
while read INPUT ; do echo "${INPUT//|/ | } |
" ; done < ${dossier}/ipmi-events.log >> ${dossier}/ipmi-events.html
echo '
' >> ${dossier}/ipmi-events.html
echo "errors"
ipmitool -I lanplus -H ${ipmid} -U root -P ${ipmipass} sdr list event > ${dossier}/ipmi-errors.log 2>&1
# ???
echo "temp"
echo "$(date +'%s')000,$(ipmitool -I lanplus -H ${ipmid} -U root -P ${ipmipass} sdr type temperature | grep degrees | sed 's/.*|//' | sed 's/[^0-9-]*//g')" >> ${dossier}/temperature-full.log
# Ambient Temp | 0Eh | ok | 7.1 | 13 degrees C -> 13 degrees C -> 13
tail -35040 ${dossier}/temperature-full.log > ${dossier}/temperature.log
# (script lancé toutes les 15mn): 60÷15 (1h) × 24 (1j) × 365 (1an) = 35040
chmod -R a+rw ${dossier}