分享

监控linux主机的shell脚本

 恶之一眉 2011-10-20
监控linux主机的shell脚本
2011-10-16 09:27

  暑假里我们团队做了一套监控linux的系统,在里很想跟大家分享一下。

1.监控获取cpu信息的脚本:

#!/bin/bash
awk '$0 ~/cpu[0-9]/' /proc/stat  | while read line
do
echo "cpu使用信息:"
echo "$line" | awk '{total=$2+$3+$4+$5+$6+$7+$8;free=$5;\
               print$1" 剩余(free) "free/total*100"%",\
                "已用(used) " (total-free)/total*100"%"}
done
2.监控获取磁盘空间的脚本:

#!/bin/sh
file_dir="/var/www/html/wangwang/"
df -h > ${file_dir}/cipan.txt
cat cipan.txt
 3.  监控获取内存信息的脚本:

#/bin/bash
file_dir="/var/www/html/wangwang/"
free -m | grep Mem | sed 's/ \{1,\}/\n/g;' | sed '2 s/.\{1,\}/总共(total):&M/g;3 s/.\{1,\}/使用(used):&M/g;4 s/.\{1,ee):&M/g;/M$/ !d'  > ${file_dir}/neicun.txt
echo 内存使用状况
cat neicun.txt

4.监控查看登陆服务器的用户的脚本:

#/bin/bash 
file_dir="/var/www/html/wangwang/"
who -aH > ${file_dir}/yonghu.txt
cat yonghu.txt

5.监控查看http服务是否正常运行的脚本:

#!/bin/sh
server_all_list=(\
:80 \
)
server_all_len=${#server_all_list[*]}
i=0
while [ $i -lt $server_all_len ]
do
    server_ip=$(echo ${server_all_list[$i]} | awk -F ':' '{print $1}')
    server_port=$(echo ${server_all_list[$i]} | awk -F ':' '{print $2}')
if curl -m 30 -G http://${server_all_list[$i]}/ > /dev/null 2>&1
then
     status=1
     echo "ok"
else
      if ping -c 1 $server_ip > /dev/null 2>&1
      then
      status=2
      echo "ping ok"
      else
      status=0
      echo "error"
fi
fi
let i++
done
6.监控查看ftp服务是否正常运行的脚本:

#!/bin/sh
server_ip=211.64.47.184
if wget -t 3 -T 3 --spider > /dev/null 2>&1 ;
then
 echo "ftp 1¤×÷?y3£"
else
if ping -c 1 $server_ip > /dev/null 2>&1
then
echo "ping  ok"
else
echo "error"
fi
fi

7.监控查看ssh是否正常运行的脚本:

#!/bin/sh
server_all_list=(\
:22 \
)
server_all_len=${#server_all_list[*]}
i=0
while [ $i -lt $server_all_len ]
do
    server_ip=$(echo ${server_all_list[$i]} | awk -F ':' '{print $1}')
    server_port=$(echo ${server_all_list[$i]} | awk -F ':' '{print $2}')
if curl -m 30 -G http://${server_all_list[$i]}/ > /dev/null 2>&1
then
     status=1
     echo "ok"
else
      if ping -c 1 $server_ip > /dev/null 2>&1
      then
      status=2
      echo "ping ok"
      else
      status=0
      echo "error"
fi
fi
let i++
done 

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多