《Centos7——企业级日常巡检脚本的编写》

1. 企业巡检脚本版本一

vim a.sh -----编辑脚本

#!/bin/bash
##系统信息
os_sys(){
        os_type=$(uname)
        echo "操作系统的类型:${os_type}"
        os_version=$(cat /etc/redhat-release)
        echo "操作系统的版本号:${os_version}"
        os_ker=$(uname -r)
        echo "操作系统的内核版本:${os_ker}"
        os_time=$(date +%F-%T)
        echo "服务器当前运行时间: ${os_time}"
        os_last_reboot=$(uptime | awk '{print $3,$4}' | awk -F ',' '{print $1}')
        echo "服务器最后重启时间:${os_last_reboot}"
        os_hostname=$(hostname)
        echo "服务器的主机名: ${os_hostname}"
}

##网络信息
os_network(){
        ip_addr=$(ifconfig ens33 | awk '/netmask/{print $2}')
        echo "服务器的ip地址为:${ip_addr}"
        ping -c2 www.baidu.com > /dev/null
        if [ $? -eq 0 ]; then
                echo "服务器的网络是ok的"
        else
                echo "请检查服务器的网络"
        fi
        RX=$(ifconfig ens33 | grep RX | sed -n '1p' | awk '{print $(NF-1),$NF}')
        echo "网卡流入的量为:${RX}"
        TX=$(ifconfig ens33 | grep TX | sed -n '1p' | awk '{print $(NF-1),$NF}')
        echo "网卡流出的量为: ${TX}"
}

##硬件信息
##cpu
cpu_info(){
        cpu_num=$(grep "physical id" /proc/cpuinfo | sort |uniq |wc -l )
        echo "cpu的物理个数为:${cpu_num}"
        cpu_core=$(grep "core id" /proc/cpuinfo | sort |uniq |wc -l)
        echo "cpu的核心数为: ${cpu_core}"
        cpu_model=$(grep "model name" /proc/cpuinfo |sort |uniq |awk -F ':' '{print $2}')
        echo "cpu的型号:${cpu_model}"
}

##mem
mem_info(){
        #内存总大小
        mem_total=$(free |awk '/Mem/{print $2}')
        echo "内存总大小:${mem_total}"
        #已用内存大小
        mem_used=$(free |awk '/Mem/{print $3}')
        echo "已用内存大小: ${mem_used}"
        #剩余内存大小
        mem_free=$(free |awk '/Mem/{print $4}')
        echo "剩余内存大小:${mem_free}"
        #已使用内存百分比:${mem_used}/${mem_total}
        percent_mem_used=$(free | awk '/Mem/{printf "%.2f\n",$3/$2*100}')
        echo "已使用内存百分比:${percent_mem_used}%"
        #剩余内存百分比:${mem_free}/${mem_total}
        percent_mem_free=$(free | awk '/Mem/{printf "%.2f\n",$4/$2*100}')
        echo "剩余内存百分比:${percent_mem_free}%"
}

##disk
disk_info(){
#磁盘总量
disk_total=$(lsblk |awk '/disk/{print $4}')
echo "磁盘总量:${disk_total}"
#剩余磁盘总量
count=($(df -T |egrep -v tmpfs |sed '1d' |awk '{print $5}'))
sum=0
for i in ${count[@]}
do
        let sum=sum+$i
done
echo "剩余磁盘总量为:$sum"
}

##安全信息
sec_info(){
        #安全信息
        #获取系统的环境变量
        #将环境变量的信息重定向到文件
        env >/root/env
        #生成md5校验码
        md5sum /root/env >/root/env.db
        #检测md5值
        md5sum -c /root/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(){
#1. www.baidu.com www.sina.com www.youku.com wwww.aaabbcc.com .....n多个域名
#2. 判断你的域名访问都是ok(判断状态码200为ok)
#3. 付过访问异常的话,需要邮件告警,告警内容要写明是哪个域名出了问题
#4. 要求:使用数组、函数

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

website=($(cat url.txt))
for url in  ${website[@]}
do
        code=$(curl -I -m 1 -o /dev/null -s -w %{http_code} $url)
        if [ $code -eq 200 ]; then
                echo "$url is ok"
        else
                echo "$url isnot ok,please check!!"|mail -s "url check" 1329826156@qq.com
        fi
done
while :
do
        os_sys
echo "==========================================================="
        os_network
echo "==========================================================="
        cpu_info
echo "==========================================================="
        mem_info
echo "==========================================================="
        disk_info
echo "==========================================================="
		sec_info
echo "==========================================================="
		service_info
echo "==========================================================="
		check_website
echo "==========================================================="
sleep 5
done

2. 企业巡检脚本版本二

#!/bin/bash
echo "系统巡检脚本:Version `date +%F`"

echo -e "\033[33m*******************************************************系统检查 *******************************************************\033[0m"
echo "系统:`uname -a | awk '{print $NF}'`"
echo "发行版本:`cat /etc/redhat-release`"
echo "内核:`uname -r`"
echo "主机名:`hostname`"
echo "SELinux:`/usr/sbin/sestatus | grep 'SELinux status:' | awk '{print $3}'`"
echo "语言/编码:`echo $LANG`"
echo "当前时间:`date +%F_%T`"
echo "最后启动:`who -b | awk '{print $3,$4}'`"
echo "运行时间:`uptime | awk '{print $3}' | sed 's/,//g'`"

echo -e "\033[33m*******************************************************CPU检查 *******************************************************\033[0m"
echo "物理CPU个数: `cat /proc/cpuinfo | grep "physical id" | awk '{print $4}' | sort | uniq | wc -l`"
echo "逻辑CPU个数: `cat /proc/cpuinfo | grep "processor" | awk '{print $3}' | sort | uniq | wc -l`"
echo "每CPU核心数: `cat /proc/cpuinfo | grep "cores" | awk '{print $4}'`"
echo "CPU型号: `cat /proc/cpuinfo | grep "model name" | awk -F":" '{print $2}'`"
echo "CPU架构: `uname -m`"

echo -e "\033[33m*******************************************************内存检查 *******************************************************\033[0m"
echo "总共内存:`free -mh | awk "NR==2"| awk '{print $2}'`"
echo "使用内存:`free -mh | awk "NR==2"| awk '{print $3}'` "

echo -e "\033[33m*******************************************************硬盘检查 *******************************************************\033[0m"
echo "总共磁盘大小:`df -hT | awk "NR==2"|awk '{print $3}'`"

echo -e "\033[33m*******************************************************网络检查 *******************************************************\033[0m"
echo `ip a | grep eno | awk "NR==2" | awk '{print $NF,":",$2}'`
echo "网关:`ip route | awk 'NR==1'| awk '{print $3}'`"
echo "DNS: `cat /etc/resolv.conf | grep "nameserver" | awk '{print $2}'`"

ping -c 4 www.baidu.com > /dev/null
if [ $? -eq 0 ];then
    echo "网络连接:正常"
else
    echo "网络连接:失败"
fi

echo -e "\033[33m*******************************************************安全检查 *******************************************************\033[0m"
echo "登陆用户信息:`last | grep "still logged in" | awk '{print $1}'| sort | uniq`"
md5sum -c --quiet /etc/passwd > /dev/null 2&>1
if [ $? -eq 0 ];then
    echo "文件未被串改"
else
    echo "文件被串改"
fi

3. expect交互登录主机

#expect 模拟交互
#ssh 到另外一台主机上,执行一条命令:ifconfig
#执行完以后,退出!

yum -y install expect ------安装expect工具

vim a.sh -----创建脚本
#!/usr/bin/expect
spawn ssh root@192.168.179.128 -----开始进程
expect "yes/no" -----捕捉字符串
send "yes\r" -----发送命令(\r回车)
expect "password"
send "wudengtian\r"
expect "]#"
send "ifconfig\r"
expect eof -----结束进程
interact ------停留在交互的界面
}
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值