Outils pour utilisateurs

Outils du site


linux:scripts_bash:exemples:mailafterboot

mailAfterBoot

Appelé dans /etc/rc.local après un sleep 30 (à adapter, pour que les services soient tous lancés)

#!/bin/sh
 
# script qui previent du reboot par mail
# a appeler à la fin de /etc/rc.local
 
DEST='user@example.com'
TMP=/tmp/msgreboot
MAILARGS='Content-Type: text/plain; charset=UTF-8'
 
function run() {
  # faut 2 params (titre et commande avec args), pas de test
  echo "#### $1 ####" >> $TMP
  eval "$2" >> $TMP
  echo >> $TMP
  echo >> $TMP
}
 
# init
# si /tmp pas en écriture, y'a un gros bleme et le mail marchera probablement pas
# mais on tente quand même
>$TMP
[ $? -ne 0 ] && sleep 60 && echo -e "Impossible d'écrire sur $TMP\n\nLe top\n`top -n 1`" |/usr/bin/mail -a "$MAILARGS" -s "$HOSTNAME vient de rebooter, Impossible d'écrire dans $TMP" $DEST && exit 1
 
echo "[`date '+%F %T'`] Le serveur $HOSTNAME vient de rebooter" > $TMP
echo >> $TMP
 
run 'Identification' '/bin/cat /etc/issue'
run 'Le début du top' '/usr/bin/top -b -n 1|head -5'
run 'Le ps auxwf' '/bin/ps auxwf'
run 'dmesg' '/bin/dmesg'
run 'Le réseau' '/bin/netstat -tanpu'
run 'les 100 dernières lignes du /var/log/messages' '/usr/bin/tail -100 </var/log/messages'
run 'les 100 dernières lignes du /var/log/syslog' '/usr/bin/tail -100 </var/log/syslog'
run 'les 50 dernières lignes du /var/log/auth.log' '/usr/bin/tail -50 /var/log/auth.log'
run 'les 50 dernières lignes  du /var/log/kern.log' '/usr/bin/tail -50 /var/log/kern.log'
 
# et on envoi
/usr/bin/mail -a "$MAILARGS" -s "$HOSTNAME vient de rebooter" $DEST <$TMP
 
# on efface pas $TMP, ça laisse une trace
linux/scripts_bash/exemples/mailafterboot.txt · Dernière modification : 01/03/2008 18:31 de daniel