shell-企业级巡检自动化(简单)

本文介绍了如何在CentOS7系统上使用Shell脚本进行企业级的系统巡检自动化,重点涉及CPU使用率和网络状态的监测,是运维工作中常用的一种自动化手段。
摘要由CSDN通过智能技术生成

系统版本centos7

 shell代码

#!/bin/bash
cpu_info(){
        #cpu信息 /proc/cpuinfo里
        #cpu 型号
        cpu_model=$(cat /proc/cpuinfo |grep "model name"|uniq |awk -F ':' '{print $2}')
        echo "cpu的型号信息:${cpu_model}"
        #cpu的核心数
        cpu_core=$(cat /proc/cpuinfo |grep "core id"|uniq |wc -l)
        echo "cpu的核心数:${cpu_core}"
        #cpu的物理个数
        cpu_physical=$(cat /proc/cpuinfo |grep "physical id"|uniq |wc -l)
        echo "cpu的物理个数:${cpu_physical}"
}
mem_info(){
        #mem信息
        #内存总量
        mem_total=$(free  -m|awk '/Mem/{print $2}')
        echo "内存总量:${mem_total}"
        #内存使用量
        mem_used=$(free  -m|awk '/Mem/{print $3}')
        echo "内存使用量: ${mem_used}"
        #内存剩余使用量
        mem_free=$(free -m |awk '/Mem/{print $4}')
        echo "内存剩余使用量: ${mem_free}"
        #内存使用率
        #内存使用率=$mem_used/$mem_total
        Percent_mem_used=$(echo "scale=2;${mem_used}/${mem_total}*100"|bc)
        echo "内存使用率:${Percent_mem_used}%" 
        #剩余内存使用率
        #剩余内存使用率=$mem_free/$meme_total
        Percent_mem_free=$(echo "scale=2;${mem_free}/${mem_total}*100"|bc)
        echo "剩余内存使用率:${Percent_mem_free}%"
}
disk_info(){
#磁盘信息
        #对磁盘读写进行监控,并输出结果
        yum -y install sysstat
        iostat
        #磁盘总量
        disk_total=$(lsblk |awk '/disk/{print $4}')
        echo "磁盘总量:${disk_total}"
        #磁盘剩余总量
        sum=0
        a=($(df -T |awk -F' ' '{print $5}' |sed '1d'))
        for i in ${a[@]}
        do
        let  sum=sum+$i
        done
        diskfree=$(($sum/1024/1024))
        echo "磁盘剩余总量为:${diskfree}GB"
        #对文件系统进行检查,查看使用率是否达到80%,并输出结果
        df -h|awk 'NR>1 {if ($5>80) print $1}'
}
net_info(){
        #网络信息
        #获取主机ip
        net_addr=$(ifconfig ens33 | grep netmask | awk '{print $2}'})
        echo "主机ip地址为:${net_addr}"
        #能否ping通外网
        ping -c1 www.baidu.com >/dev/null
        if [ $? -eq 0 ]; then
                echo "net is ok"
        else
                echo "please check network !!"
        fi        
        #统计网卡流量
        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"
}
#系统信息
sys_info(){
        OS_TYPE=`uname`
        echo "    系统类型:$OS_TYPE"
        OS_VER=`cat /etc/redhat-release`
        echo "    系统版本:$OS_VER"
        OS_KER=`uname  -r`
        echo "    系统内核:$OS_KER"
        OS_TIME=`date`
        echo "    当前时间:$OS_TIME"
        OS_RUN_TIME=`uptime |awk '{print $3}'|awk -F ',' '{print $1}'`
        echo "    运行时间:$OS_RUN_TIME"
        OS_LAST_REBOOT_TIME=`who -b|awk '{print $2,$3}'`
        echo "最后重启时间:$OS_LAST_REBOOT_TIME"
        OS_HOSTNAME=`hostname`
        echo "本机名称:$OS_HOSTNAME"

}
sec_info(){
        #安全信息
        #获取系统的环境变量
        #将环境变量的信息重定向到文件
        env >/opt/env
        #生成md5校验码
        md5sum /opt/env >/opt/env.db
        #检测md5值
        md5sum -c /opt/env.db
        if [ $? -eq 0 ]; then
                echo "ok"
        else
                echo "系统可用被黑了!!"
        fi
}
service_info(){
        netstat  -lptnu|grep 3306
        if [ $? -eq 0 ]; then
                echo "mysql service is ok"
        else
                echo "please check mysql service"
        fi
}
check_website(){
    #curl选项
    #-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
        disk_info
        net_info
        sys_info
        sec_info
        service_info
        check_website
        sleep 2
done


                                                   




 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值