zoukankan      html  css  js  c++  java
  • 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}'`
    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 "----------核心信息监控---------"
    OS_TYPE=`uname`
    echo "系统类型:$OS_TYPE"
    OS_KER=`uname  -r`
    echo "系统内核:$OS_KER"
    
    # 系统版本
    echo "--------操作系统版本--------"
    OS_VER=`cat /etc/redhat-release`
    echo "系统版本:$OS_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} 控制额外输出

  • 相关阅读:
    如何优雅地用Redis实现分布式锁?
    redis 持久化有几种方式?
    怎么保证缓存和数据库数据的一致性?
    jedis 和 redisson 有哪些区别?
    redis支持哪些数据类型?redis命令大全
    什么是redis的缓存雪崩与缓存穿透?如何解决?
    redis 为什么是单线程的?
    什么是memecache?redis 和 memecache 有什么区别?
    Redis入门到精通(九)——Redis数据库基本操作(切换数据库,数据移动,删除数据)
    Redis入门到精通(八)——key通用指令基本操作、key扩展操作(时效性控制、查询模式)、key其他操作(为key改名)
  • 原文地址:https://www.cnblogs.com/sunjianlin/p/13144741.html
Copyright © 2011-2022 走看看