企业级巡检脚本
#!/bin/bash # 能够对服务器CPU进行监控,并输出CPU的信息 echo "----------CPU信息----------" cat /proc/cpuinfo |head -n17 #内存监控 echo "---------内存监控信息------------" mem_total=`free -m|awk ‘/Mem/{print $2}‘` mem_used=`free -m|awk ‘/Mem/{print $3}‘` mem_free=$(echo "scale=2;$mem_used/$mem_total*100"|bc) echo "内存使用率:$mem_free %" # 网络监控 echo "---------网络监控信息-----------" #ping -c1 www.baidu.com >/dev/null #if [ $? -eq 0 ];then # echo "网络连接正常" #else # echo "网络连接异常,及时处理" #fi # 服务监控 echo "-----------MySQL监控------------" netstat -anlp|grep 3306 >/dev/null if [ $? -eq 0 ];then echo "mysql服务正常启动" else echo "mysql服务异常,请及时处理" fi # 文件系统进行检查 echo "-------文件系统监控--------" df_h=`df -h|awk ‘NR>1 {if ($5>80) print $1}‘` df -h|awk ‘NR>1 {if ($5>80) print $1}‘ >/dev/null if [ $? -eq 0 ];then echo "使用率没有超过80%" else echo "以下文件系统超过80% $df_h" yum -y install mailx >/dev/null echo "文件系统超出80%,及时处理"|mail -s df *********@qq.com fi # 磁盘读写进行监控 echo "-----------磁盘读写监控----------" # 安装sysstat yum -y install sysstat >/dev/null iostat # 环境变量监控 echo "----------环境变量监控------------" # 将环境变量重定向到目标 env >/opt/env # 将目标文件进行md5加密 md5sum /opt/env >/opt/env.md5 # 对目标文件进行md5效验 md5sum -c /opt/env.md5 >/dev/null if [ $? -eq 0 ];then echo "环境变量未发生改变" else echo "环境变量发生改变,管理员请及时处理" fi # 核心信息输出 echo "----------核心信息监控---------" OS_TYPE=`uname` echo "系统类型:$OS_TYPE" OS_KER=`uname -r` echo "系统内核:$OS_KER" # 系统版本 echo "--------操作系统版本--------" OS_VER=`cat /etc/redhat-release` echo "系统版本:$OS_VER" # 网络统计信息 echo "-------------网络统计信息----------" #获取主机ip net_addr=$(ifconfig ens33 | grep netmask | awk ‘{print $2}‘) echo "主机ip地址为:${net_addr}" #统计网卡流量 RX=$(ifconfig ens33|grep RX|head -n1|awk ‘{print $6}‘|awk -F‘(‘ ‘{print $2}‘) echo "网卡流入的量为:${RX}MB" TX=$(ifconfig ens33|grep TX|head -n1|awk ‘{print $6}‘|awk -F‘(‘ ‘{print $2}‘) echo "网卡流出的量为:${TX}MB" # 进程信息 echo "--------------进程信息--------" ps aux # 网站运行 echo "-----------检测公司网站是否运行-----------" code=$(curl -I -m 10 -o /dev/null -s -w %{http_code} www.baidu.com) if [ $code -eq 200 ]; then echo "网站运行正常" else echo "网站崩溃,及时处理" fi
curl 命令使用介绍
-I 仅测试HTTP头
-m 10 最多查询10s
-o /dev/null 屏蔽原有输出信息
-s silent 模式,不输出任何东西
-w %{http_code} 控制额外输出