AI智能
改变未来

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

创建一个shell脚本目录

[root@localhost ~]# mkdir /shell

编写shell脚本

[root@localhost ~]# vim /shell/sys_check.sh

脚本内容

#!/bin/bashcpu_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>&1if [ $? -eq 0 ]; thenecho \"net is ok!\"elseecho \"please check network!\"fi}#能够对服务器服务进行监控,mysql服务,并输出结果service_info(){#检测mysql服务是否正常netstat -anlp |grep :3306 > /dev/null 2>&1if [ $? -eq 0 ]; thenecho \"mysql服务正常。\"elseecho \"please check mysql service\"fi}#能够对文件系统进行检查,查看使用率是否达到80%,并通过邮件发送报警信息disk_info(){#磁盘使用率,大于%80,输出结果,并邮件报警#需要安装mailx:yum -y install mailxdf -h | awk \'NR>1 {if ($5>80) print $1}\'if [ $? -ne 0 ]; thenecho \"please check disk\" | mail -s \"警告!警告!\" [email protected]}#对磁盘读写进行监控,并输出结果#需要安装sysstat: yum -y install sysstat#在循环内执行:iostat#对环境变量进行监控并输出结果sec_info(){#将环境变量的信息重定向到文件env >/opt/env#生成md5校验码md5sum /opt/env >/opt/env.db#检测md5值md5sum -c /opt/env.dbif [ $? -eq 0 ]; thenecho \"sec is ok!\"elseecho \"系统可用被黑了!!\"fi}#检查操作系统的kernel信息并输出结果ker_info(){ker=`uname -r`echo \"系统的kernel为:$ker\"}#检查操作系统版本,并输出结果ver_info(){ver=`cat /etc/redhat-release`echo \"系统的版本为:$ver\"}#查看网络统计信息并输出结果net_stat_info(){#获取主机ipnet_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 ]; thenecho \"website is ok\"elseecho \"please check website\"fi}while :docpu_infomem_infonet_infoservice_infodisk_infoiostatsec_infoker_infover_infonet_stat_infops auxcheck_websitesleep 5done
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Os 7 编写shell脚本对服务器硬件的监控