监控数据库服务器的shell脚本
2011-09-24 13:12
381 查看
这段时间学习shell编程,特编写一个了监控数据库服务器性能的脚本,这个脚本可以监控进程,内存,swap,PGA连接数,网络,还有load #!/bin/sh #creater:danchen #date:2007-3-27 #local varrible mailto='username@163.com' dbname=`hostname|sed 's/_.*//g'` echo "" echo $dbname echo "************************" #process echo "" echo "total processes" echo "************************" ps -ef|wc -l echo "" echo "PGA processes" echo "************************" v_lp=`ps -ef|grep LOCAL|grep -v "grep LOCAL"|wc -l` f_lp=250 if [ $v_lp -gt $f_lp ] then mailmsg="the pga process's number is larger than 100,now is $v_lp" echo "$mailmsg" > /tmp/pga_$HOSTNAME.log scp /tmp/pga_$HOSTNAME.log oracle@csdb1:/opt/devtest_db_logs/pga_$HOSTNAME.log ssh -loracle csdb1 "mail -s "pga_${HOSTNAME}_danger" $mailto < /opt/devtest_db_logs/pga_$HOSTNAME.log" else echo "${dbname}'s pga process's number is normal,now is $v_lp" fi echo "" echo "cron process" echo "************************" v_c=`ps -ef|grep cron|grep -v "grep cron"|wc -l` if [ $v_c -ne 1 ] then mailmsg="the cron process error" echo "$mailmsg" > /tmp/cron_$HOSTNAME.log scp /tmp/cron_$HOSTNAME.log oracle@csdb1:/opt/devtest_db_logs/cron_$HOSTNAME.log ssh -loracle csdb1 "mail -s "cron_${HOSTNAME}_danger" $mailto < /opt/devtest_db_logs/cron_$HOSTNAME.log" else echo "the cron process is running normally" fi #load echo "" echo "load" echo "************************" v_ld=`w|grep load|grep -v "grep load"|sed 's/,//g'|awk '{print $10}'` vv_ld=`printf "%2.0f" $v_ld` f_ld=3 if [ $vv_ld -gt $f_ld ] then mailmsg="${dbname}'s load is larger than $f_ld,now is $v_ld" echo "$mailmsg" > /tmp/load_$HOSTNAME.log scp /tmp/load_$HOSTNAME.log oracle@csdb1:/opt/devtest_db_logs/load_$HOSTNAME.log ssh -loracle csdb1 "mail -s "load_${HOSTNAME}_danger" $mailto < /opt/devtest_db_logs/load_$HOSTNAME.log" else echo "${dbname}'s load is normal,now is $v_ld" fi #CPU echo "" echo "CPU blocked number" echo "************************" v_bp=`vmstat|sed -n 3p|awk '{print $2}'` f_bp=2 if [ $v_bp -gt $f_bp ] then mailmsg="${dbname}'s runquenue is larger than $f_bp,now is $v_bp" echo "$mailmsg" > /tmp/runquenue_$HOSTNAME.log scp /tmp/runquenue_$HOSTNAME.log oracle@csdb1:/opt/devtest_db_logs/runquenue_$HOSTNAME.log ssh -loracle csdb1 "mail -s "runquenue_${HOSTNAME}_danger" $mailto < /opt/devtest_db_logs/runquenue_$HOSTNAME.log" else echo "the runquenue is normal,now the blocked job number is $v_bp" fi #swap echo "" echo "swap" echo "************************" v_swap=`free|sed -n 4p|awk '{print $3}'` f_swap=200000 if [ $v_swap -gt $f_swap ] then mailmsg="${dbname}'s swap is larger than $f_swap,now is $v_swap" echo "$mailmsg" > /tmp/swap_$HOSTNAME.log scp /tmp/swap_$HOSTNAME.log oracle@csdb1:/opt/devtest_db_logs/swap_$HOSTNAME.log ssh -loracle csdb1 "mail -s "swap_${HOSTNAME}_danger" $mailto < /opt/devtest_db_logs/swap_$HOSTNAME.log" else echo "the swap is normal,now is ${v_swap}k" fi #memories echo "" echo "memories" echo "************************" free|sed -n 2p #network echo "" echo "network" echo "************************" /sbin/ifconfig|grep "inet addr"|grep -v "127.0.0.1" echo "" echo "---------------END---------------------"
相关文章推荐
- shell脚本FAQ与常用数据库服务器监控脚本示例
- shell脚本 监控 web服务器状态
- shell脚本备份mysql里面所有数据库到远程服务器
- shell脚本监控服务器状态
- 使用shell脚本进行服务器系统监控——进程监控
- Shell脚本监控服务器pts登录情况记录为日志并邮件通知【CentOS 6.5】
- 使用shell脚本监控服务器内存和cpu使用量,自动清理无效内存(补充篇)
- 写了一个简单的shell脚本监控mysql服务器运行状态
- 编写shell脚本监控服务器的状态信息
- 使用shell脚本进行服务器系统监控——文件系统监控(2)
- 使用shell脚本进行服务器系统监控——系统负载监控(1)
- Linux 服务器系统监控脚本 Shell【转】
- 使用shell脚本进行服务器系统监控——文件系统监控(1)
- 使用shell脚本进行服务器系统监控——文件系统监控(3)
- 使用shell脚本进行服务器系统监控——系统负载监控(2)
- 使用shell脚本进行服务器系统监控——文件系统监控(5)
- shell脚本编程-例子_服务器存活监控
- shell脚本:数据库业务监控
- 使用shell脚本进行服务器系统监控——文件系统监控(4)
- 使用shell脚本进行服务器系统监控——系统负载监控(3)