以MONITOR用户登录时就出此监控菜单(在MONITOR的用户环境里加个自动执行此脚本的语句子 sh ./monitor.sh)
具体脚本如下:
#!/bin/sh
while [ -e /home/monitor ]
do
echo " "
echo "+--------------------------------------------------------------------+"
echo "| ShangHai E&P CIQ database System Monitor |"
echo "+--------------------------------------------------------------------+"
echo "| |"
echo "| 1: Check Disk Space |"
echo "| |"
echo "| 2: Check Error Log |"
echo "| |"
echo "| 3: Check Backup |"
echo "| |"
echo "| 4: Check Replication |"
echo "| |"
echo "| x: Exit |"
echo "| |"
echo "+--------------------------------------------------------------------+"
echo -n 'Choose an option, then press <Enter> to continue -> '
currdate=`date +%Y%m%d`
mysql=/u02/mysql
user=monitor
passwd=0000
socket=`ls /tmp/|grep sock|awk -F'.' '{print $1}'`
ckdate=`date +%d-%m-%y`
back_dest=/mysqlbak
###########
read op
case $op in
1)
echo ""
echo ++++++++++++++++++ `hostname`.disk space +++++++++++++++++++
df -h
#continue
;;
2)
for sock in $socket;
do
cd $mysql/$sock
echo +++++++++++++++++++++++++${sock}.err++++++++++++++++++++++++++++
echo ""
cat mysql_error.log |grep -i '\[error\]'|grep $currdate
done
;;
3)
for i in `ls -l /mysqlbak|awk '{print $9}'|grep [a-z]`
do
cd ${back_dest}/$i
backn=`ls -l |grep -c $ckdate`
echo ""
echo ++++++++++++++++$i++++++++++++++++++
if [ "$backn" = "1" ];then
echo " backup successful"
else
echo " backp error"
fi
done
;;
4)
for sock in 3306 3307 3310;
do
echo ""
echo +++++++++++++++++++++++++${sock}-replication++++++++++++++++++++++++++++
/u02/mysql/bin/mysql -S /tmp/${sock}.sock -ur -p00000 -e "show slave status\G;"|grep -i running
behend=`/u02/mysql/bin/mysql -S /tmp/${sock}.sock -umonitor -p000 -e "show slave status\G;"|grep -i seconds|awk -F':' '{print $2}'`
if [ "$behend" -gt "2000" ];then
echo ""
echo " slave behend master $behend"
else
echo ""
echo " replaction is ok"
fi
done
;;
x)
exit
;;
esac
done