一個簡單的系統監控腳本如下:
#!/bin/bash
time=`date +"%Y-%m-%d %H:%M:%S"`
d=`date +%m%d`
N=`ps -ef | grep httpd | grep -v grep | wc -l`
Q=`ps -ef | grep java | grep -v grep | wc -l`
[ -d /root/check_log/ ] || mkdir /root/check_log
IP=`ifconfig eth0 | sed -n '2'p | awk '{print $2}' | awk -F':' '{print $2}'`
M=`uptime | awk '{print $8,$9,$10,$11,$12}'`
O=`ifconfig eth0 | sed -n '8'p | awk '{print $3,$4}'`
P=`ifconfig eth0 | sed -n '8'p | awk '{print $7,$8}'`
R=`ifconfig eth1 | sed -n '8'p | awk '{print $3,$4}'`
S=`ifconfig eth1 | sed -n '8'p | awk '{print $7,$8}'`
A=`top -bn1 | sed -n '2'p | awk '{print $2}'`
B=`top -bn1 | sed -n '2'p | awk '{print $10}'`
echo ****************************$IP**************************** >> /root/check_log/$d.log
echo "系統目前時間:" >> /root/check_log/$d.log
echo $time >> /root/check_log/$d.log
echo "---------------------check system load------------------" >> /root/check_log/$d.log
echo "系統目前負載:" >> /root/check_log/$d.log
echo $M >> /root/check_log/$d.log
echo "---------------------check 總程序數---------------------" >> /root/check_log/$d.log
echo "系統目前總程序數:" >> /root/check_log/$d.log
echo $A >> /root/check_log/$d.log
echo "系統目前僵死程序數:" >> /root/check_log/$d.log
echo $B >> /root/check_log/$d.log
echo "---------------------check 應用程序數--------------------" >> /root/check_log/$d.log
echo "目前apache程序數:" >> /root/check_log/$d.log
echo $N >> /root/check_log/$d.log
echo "目前java程序數" >> /root/check_log/$d.log
echo $Q >> /root/check_log/$d.log
echo "---------------------check Tcp連接配接狀态-------------------" >> /root/check_log/$d.log
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a,S[a]}' >> /root/check_log/$d.log
echo "---------------------check 網卡流量-----------------------" >> /root/check_log/$d.log
echo "目前eth0網卡流量:" >> /root/check_log/$d.log
echo "接收總流量:$O" >> /root/check_log/$d.log
echo "發送總流量:$P" >> /root/check_log/$d.log
echo "目前eth1網卡流量:" >> /root/check_log/$d.log
echo "接收總流量:$R" >> /root/check_log/$d.log
echo "發送總流量:$S" >> /root/check_log/$d.log
echo "-----------------------------check cpu load------------------------------" >> /root/check_log/$d.log
echo "系統目前cpu負載:" >> /root/check_log/$d.log
sar -u 1 10 | grep -v Linux | grep -v ^$ >> /root/check_log/$d.log
echo "-----------------------------check mem load------------------------------" >> /root/check_log/$d.log
echo "系統目前記憶體資訊:" >> /root/check_log/$d.log
cat /proc/meminfo >> /root/check_log/$d.log
echo "-----------------------------check 磁盤空間------------------------------" >> /root/check_log/$d.log
echo "系統目前磁盤容量:" >> /root/check_log/$d.log
df -h >> /root/check_log/$d.log
echo "-----------------------------check io load-------------------------------" >> /root/check_log/$d.log
echo "系統目前io磁盤負載:" >> /root/check_log/$d.log
iostat 1 10 | grep -v ^$ | grep -v Linux | grep -v dm | grep -v hdc >> /root/check_log/$d.log
find /root/check_log/ -mtime +6 |xargs rm -f