home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.ac-grenoble.fr
/
2015.02.ftp.ac-grenoble.fr.tar
/
ftp.ac-grenoble.fr
/
pub
/
slis
/
updates_rsync
/
monitor
< prev
next >
Wrap
Text File
|
2004-02-10
|
6KB
|
193 lines
#!/bin/bash
###### Variables ###########
LOGTAG="monitor[$$]"
grep HOSTNAME /etc/sysconfig/network > /tmp/hostname
. /tmp/hostname
rm -rf /tmp/hostname
WEBMASTER=`ls -ld /home/httpd/html |awk '{print $3}'` # Webmaster designΘ par l'admin local
VERSION=`cat /etc/version_slis_num`
. /home/hadmin/setup.data 2>/dev/null
. /home/hadmin/slis.conf 2>/dev/null
. /usr/local/lib/slis-sys.inc.bash 2>/dev/null
load_config 2>/dev/null
###########################
# Locking
if [ -e /var/lock/monitoring_script ]
then
logger -t "$LOGTAG" "Monitoring script already started. Canceling."
exit
fi
touch /var/lock/monitoring_script
sleep 1
logger -t "$LOGTAG" "Monitoring starting..."
#############################################
# Parametres du user de connexion a la base SQL
export PGUSER=sliss
export PGPASSWORD=demo
SQL_SERVER="sql.ac-grenoble.fr"
PSQL="psql -h $SQL_SERVER sliss -tqc"
# Recuperation des params de l'administrateur et autres parametres
PRENOM_ADMIN=`awk '{if (NR==1) print}' $BASE/params_admin.txt`
NOM_ADMIN=`awk '{if (NR==2) print}' $BASE/params_admin.txt`
MAIL_ADMIN=`awk '{if (NR==3) print}' $BASE/params_admin.txt`
TEL_ADMIN=`awk '{if (NR==4) print}' $BASE/params_admin.txt`
VERSION_SLIS=`cat /etc/version_slis`
MEM=`free |awk '{if ($1 == "Mem:") print $2}'`
UPTIME=`cat /proc/uptime |cut -d. -f1`
LOAD=`cat /proc/loadavg |cut -d" " -f3`
KREL=`uname -r |cut -d. -f1,2`
if [ "$KREL" = "2.2" -o "$KREL" = "2.4" ]
then
CPU_MODEL=`cat /proc/cpuinfo |grep -i "model name"|cut -d: -f2|uniq`
CPU_SPEED=`cat /proc/cpuinfo |grep -i "cpu MHz"|cut -d: -f2|cut -d. -f1|uniq`
CPU="$CPU_MODEL $CPU_SPEED MHz"
fi
if [ "$KREL" = "2.0" ]
then
CPU_MODEL=`cat /proc/cpuinfo |grep -i "model"|cut -d: -f2|uniq`
CPU_SPEED=`cat /proc/cpuinfo |grep -i "bogomips"|cut -d: -f2|cut -d. -f1|uniq`
CPU="$CPU_MODEL ($CPU_SPEED bogomips)"
fi
ACCOUNTS=`ldapsearch -LLL -x -h localhost objectclass=posixAccount dn |grep "dn:"|wc -l`
#NBUG=`awk -F: '{if (length($1) > 8 ) print $1}' /etc/passwd|wc -l`
KRELEASE=`/bin/uname -r`
# Renseignement de la base centrale (table slis)
HOST=`echo $HOSTNAME|sed "s/\.$DOMAIN//"`
psql -h $SQL_SERVER sliss -tqc "delete from slis where nom='$HOST'"
psql -h $SQL_SERVER sliss -tqc "insert into slis
(nom,mail_admin,tel_admin,prenom_admin,nom_admin,version,date,mem,uptime,charge,cpu_model,n_accounts,krelease)
values ('$HOST','$MAIL_ADMIN','$TEL_ADMIN','$PRENOM_ADMIN','$NOM_ADMIN','$VERSION_SLIS',now(),'$MEM','$UPTIME','$LOAD','$CPU','$ACCOUNTS','$KRELEASE')"
# Recuperation d'un df et envoi <E0> la base centrale (table df)
psql -h $SQL_SERVER sliss -tqc "delete from df where slis='$HOST'"
R=$RANDOM
df -k > /tmp/df.$R
grep -v Filesystem /tmp/df.$R| sed "s/%//g" | \
awk -v host=$HOST -v psql="$PSQL" \
'{print psql " \"insert into df (slis,part,size,free,used_percent,mount) values (\x27" host "\x27,\x27" $1 "\x27,\x27" $2 "\x27,\x27" $4 "\x27,\x27" $5 "\x27,\x27" $6 "\x27)\"" }' > /tmp/df.sql.$R
bash /tmp/df.sql.$R
rm -rf /tmp/df.$R
# Envoi des adresses ip des interfaces
psql -h $SQL_SERVER sliss -tqc "delete from ip where slis='$HOST'"
for if in `/bin/netstat -i|awk '{if (NR>2) print $1}'`
do
ip=`/sbin/ifconfig $if |grep "inet ad"|awk -F":" '{print $2}'|awk '{print $1}'`
psql -h $SQL_SERVER sliss -tqc "insert into ip (ip,if,slis) values ('$ip','$if','$HOST')"
done
# Etat des services et envoi <E0> la base centrale (table pservices)
SENDMAIL=0;SQUID=0;HTTP=0;HADMIN=0;ADMIND=0;SYSLOG=0;NAMED=0
INETD=0;POSTMASTER=0
if [ "`ps awux |grep sendmail|grep "smmsp"|grep -v grep`" != "" ]
then
SENDMAIL="1"
else
/etc/rc.d/init.d/sendmail restart
sleep 1
if [ "`/bin/ps awux |grep sendmail|grep "accepting conn"|grep -v grep`" != "" ]
then
SENDMAIL="1"
fi
fi
if [ "`/bin/ps awux |grep squid|grep -v grep`" != "" ]
then
SQUID="1"
else
if [ "$PROXYON" != "0" ]
then
logger -t "$LOGTAG" "Squid is down, trying to restart"
killall RunCache
killall squid
sleep 2
/etc/rc.d/init.d/runcache start
sleep 2
if [ "`/bin/ps awux |grep squid|grep -v grep`" != "" ]
then
SQUID="1"
fi
fi
fi
if [ "`/bin/ps awux |grep httpd|grep nobody|grep -v grep`" != "" -o "`/bin/ps awux |grep httpd|grep apache|grep -v grep`" != "" ]
then
HTTP="1"
else
if [ "$HTTPDON" != "0" ]
then
logger -t "$LOGTAG" "Httpd is down, trying to restart"
/etc/rc.d/init.d/httpd start
sleep 2
fi
if [ "`/bin/ps awux |grep httpd|grep nobody|grep -v grep`" != "" -o "`/bin/ps awux |grep httpd|grep apache|grep -v grep`" != "" ]
then
HTTP="1"
fi
fi
if [ "`/bin/ps awux |grep httpd|grep hadmin|grep -v clientgw|grep -v grep`" != "" ]
then
HADMIN="1"
else
logger -t "$LOGTAG" "Hadmin httpd is down, trying to restart"
export PHPRC="/etc/hadmin";/usr/sbin/httpd -f /etc/hadmin/conf/httpd.conf;export -n PHPRC
if [ "`/bin/ps awux |grep httpd|grep hadmin|grep -v clientgw|grep -v grep`" != "" ]
then
HADMIN="1"
fi
fi
if [ "`/bin/ps awux |grep admind|grep -v grep`" != "" ]
then
ADMIND="1"
fi
if [ "`/bin/ps awux |grep syslog|grep -v grep`" != "" ]
then
SYSLOG="1"
fi
if [ "`/bin/ps awux |grep inetd|grep -v grep`" != "" ]
then
INETD="1"
fi
if [ "`/bin/ps awux |grep named|grep -v grep`" != "" ]
then
NAMED="1"
else
/etc/rc.d/init.d/named stop
/usr/sbin/named
sleep 1
if [ "`/bin/ps awux |grep named|grep -v grep`" != "" ]
then
NAMED="1"
fi
fi
if [ "`/bin/ps awux |grep postmaster|grep -v grep`" != "" ]
then
POSTMASTER="1"
else
/etc/rc.d/init.d/postgresql stop
sleep 1
/etc/rc.d/init.d/postgresql start
sleep 2
if [ "`/bin/ps awux |grep postmaster|grep -v grep`" != "" ]
then
POSTMASTER="1"
fi
fi
psql -h $SQL_SERVER sliss -tqc "delete from services where nom='$HOST'"
psql -h $SQL_SERVER sliss -tqc "insert into services
(nom,sendmail,squid,http,hadmin,admind,syslog,named,inetd,postmaster)
values ('$HOST','$SENDMAIL','$SQUID','$HTTP','$HADMIN','$ADMIND','$SYSLOG','$NAMED','$INETD','$POSTMASTER')"
##############################
logger -t "$LOGTAG" "Monitoring ending."
/bin/rm -rf /var/lock/monitoring_script