定时启动的脚本:
df | grep “/var” | awk ‘{ print $5 }’ | awk -F”%” ‘{print $1}’ | awk ‘{ if ($1 > 90){print “alert.sh \”139xxxxxxxx\” \”insufficient disk space on /var. “,$1,”\”"} }’ | csh
ps -ef | grep httpd | grep -v cronolog | grep -v grep | grep -v root | wc -l | awk ‘{ if ($1 > 3000){print “alert.sh \”139xxxxxxxx\” \”apache process “, $1,”\”"} }’ | csh
echo ’show processlist’ | mysql | grep -v Id | grep -v processlist | wc -l | awk ‘{ if ($1 > 3000){print “alert.sh \”139xxxxxxxx\” \”mysql process “, $1,”\”"} }’ | csh
alert.sh 脚本:
echo $2
echo -e “From:monitor<>\nReply-to:support <support.labs@etentec.com>\nSubject:$2\n\n$2\n.” | /usr/sbin/sendmail $1@139.com
#! /bin/bash
for
do
clear
date
echo -n ‘httpd process: ‘;ps -ef | grep httpd | grep -v cronolog | grep -v grep | grep -v root | wc -l
echo -n ‘http connection: ‘;netstat -an | grep :80 | grep ESTABLISHED | wc -l
echo -n ‘mysql process: ‘;echo ’show processlist’ | mysql | grep -v Id | grep -v processlist | wc -l
echo -n ‘mysql connection: ‘;netstat -an | grep 3306 | grep ESTABLISHED | wc -l
echo ‘tcp connection stats:’;netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print “ “,a, S[a]}’
echo ’sorted ESTABLISHED connections: ‘;netstat -na|grep ESTABLISHED|awk ‘{print $5}’|awk -F: ‘{print $1}’|sort|uniq -c|sort -r +0n
echo ’sorted SYN connections: ‘; netstat -na|grep SYN|awk ‘{print $5}’|awk -F: ‘{print $1}’|sort|uniq -c|sort -r +0n
sleep 5
done