企业级巡检脚本
实验环境:
系统版本:centos7
主机IP:11.11.11.28
shell源代码
#!/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}'`
# 使用bc命令
yum -y install bc
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 "------------核心信息监控------------"
type=`uname`
echo "系统类型:$type"
ker=`uname -r`
echo "系统内核:$ker"
# 系统版本
echo "------------操作系统版本------------"
ver=`cat /etc/redhat-release`
echo "系统版本:$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} 控制额外输出