Os 7 编写shell脚本对服务器硬件的监控

创建一个shell脚本目录
[root@localhost ~]# mkdir /shell
编写shell脚本
[root@localhost ~]# vim /shell/sys_check.sh
脚本内容
#!/bin/bash
cpu_info(){
#能够对服务器CPU进行监控,并输出CPU的信息
#cpu 型号
cpu_model=cat /proc/cpuinfo | grep "model name" | awk -F ':' '{print $2}'
echo “cpu型号为:${cpu_model}”
#cpu 核心数
cpu_core=cat /proc/cpuinfo | grep "cpu cores" | awk -F ':' '{print $2}'
echo “cpu核心数为:${cpu_core}”
#cpu 物理个数
cpu_physical=cat /proc/cpuinfo | grep "physical id" | awk -F ':' '{print $2}'
echo “cpu物理个数为:${cpu_physical}”
}
#能够对服务器内存进行监控,并输出内存剩余使用率信息
mem_info(){
#内存剩余使用率
Percent_mem_used=free -m | grep Mem | awk '{print $4/$2*100"%"}'
echo “剩余内存使用率为:${Percent_mem_used}”
}
#能够对服务器网络进行监控,检测网络是否通畅,并输出结果
net_info(){
#检测网络是否通畅
ping -c1 www.baidu.com > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo “net is ok!”
else
echo “please check network!”
fi
}
#能够对服务器服务进行监控,mysql服务,并输出结果
service_info(){
#检测mysql服务是否正常
netstat -anlp |grep :3306 > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo “mysql服务正常。”
else
echo “please check mysql service”
fi
}
#能够对文件系统进行检查,查看使用率是否达到80%,并通过邮件发送报警信息
disk_info(){
#磁盘使用率,大于%80,输出结果,并邮件报警
#需要安装mailx:yum -y install mailx
df -h | awk ‘NR>1 {if ($5>80) print $1}’
if [ $? -ne 0 ]; then
echo “please check disk” | mail -s “警告!警告!” 823916920@qq.com
fi
}
#对磁盘读写进行监控,并输出结果
#需要安装sysstat: yum -y install sysstat
#在循环内执行:iostat
#对环境变量进行监控并输出结果
sec_info(){
#将环境变量的信息重定向到文件
env >/opt/env
#生成md5校验码
md5sum /opt/env >/opt/env.db
#检测md5值
md5sum -c /opt/env.db
if [ KaTeX parse error: Expected 'EOF', got '}' at position 108: …!!" fi }̲ #检查操作系统的kernel…ker"
}
#检查操作系统版本,并输出结果
ver_info(){
ver=cat /etc/redhat-release
echo “系统的版本为:$ver”
}
#查看网络统计信息并输出结果
net_stat_info(){
#获取主机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”
}
#查看所有进程,并输出信息

#检测公司网站www.baidu.com是否在运行,在运行则提示信息
check_website(){

#-I 仅测试HTTP头
#-m 10 最多查询10s
#-o /dev/null 屏蔽原有输出信息
#-s silent 模式,不输出任何东西
#-w %{http_code} 控制额外输出

    code=$(curl -I -m 10 -o /dev/null  -s  -w %{http_code} www.baidu.com)
    if [ $code -eq 200 ]; then
            echo "website is ok"
    else
            echo "please check website"
    fi

}

while :
do
cpu_info
mem_info
net_info
service_info
disk_info
iostat
sec_info
ker_info
ver_info
net_stat_info
ps aux
check_website
sleep 5
done

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值