美文网首页Linux小推车
应用版日常巡检shell脚本

应用版日常巡检shell脚本

作者: 大白菜的猪猪 | 来源:发表于2019-11-23 10:36 被阅读0次

    编程需求:

    之前已经编写过一个性能监控脚本.现在将其再次进行功能的丰富,以达到企业生产环境的需求.

    本文中涉及到需保密的内容均以...省略,尽请谅解!


    源代码:


    #!/bin/bash

    #脚本功能描述:监控服务器主要性能参数指标

    #监控项目:内核信息,主机名称,IP地址,登录账户,内存与swap信息,磁盘信息,CPU负载

    #内核信息

    kernel=$(uname -r)

    #操作系统版本

    release=$(cat /etc/redhat-release)

    #主机名称

    hostname=$HOSTNAME

    #本地IP地址列表

    localip=$(ip a s | awk '/inet /{print $2}')

    #总内存容量

    mem_total=$(free | awk '/Mem/{print $2}')

    #剩余内存容量

    mem_free=$(free | awk '/Mem/{print $NF}')

    #总swap容量

    swap_total=$(free | awk '/Swap/{print $2}')

    #剩余swap容量

    swap_free=$(free | awk '/Swap/{print $NF}')

    #磁盘信息

    disk=$(df | awk '/^\/dev/{print $1,$2,$4}'|column -t)

    #CPU最近1分钟的平均负载

    load1=$(uptime | sed 's/,//g' | awk '{print $(NF-2)}')

    #CPU最近5分钟的平均负载

    load5=$(uptime | sed 's/,//g' | awk '{print $(NF-1)}')

    #CPU最近15分钟的平均负载

    load15=$(uptime | sed 's/,//g' | awk '{print $(NF)}')

    #登录用户数量

    login_users=$(who | wc -l)

    #进程数量

    procs=$(ps aux | wc -l)

    #系统总账户数量

    users=$(sed -n '$=' /etc/passwd)

    #CPU型号

    cpu_info=$(LANG=C lscpu |awk -F: '/Model name/ {print $2}')

    #CPU内核数量

    cpu_core=$(awk '/processor/{core++} END{print core}' /proc/cpuinfo)

    #安装性能监控软件

    yum -y -q  install sysstat &>/dev/null

    echo -e "\033[34m提取磁盘性能指标,请稍后...\033[0m"

    tps=$(LANG=C sar -d -p 1 6 | awk '/Average/' | tail -n +2 |awk '{print "["$2"]磁盘平均IO数量:"$3}') &

    read_write=$(LANG=C sar -d -p 1 6 |awk '/Average/' | tail -n +2 | awk '{print "["$2"]平均每秒读写扇区量:"$4,$5}') &

    #中断数量

    irq=$(vmstat 1 2 |tail -n +4 | awk '{print $11}')

    #上下文切换数量

    cs=$(vmstat 1 2|tail -n +4 | awk '{print $12}')

    #占用内存资源最多的10个进程列表

    top_proc_mem=$(ps --no-headers -eo comm,rss | sort -k2 -n |tail -10)

    #占用内存资源最多的10个进程列表

    top_proc_cpu=$(ps --no-headers -eo comm,rss | sort -k2 -n |tail -10)

    #获取网卡流量信息,接收|发送的数据流量,单位为字节(bytes)

    net_monitor=$(cat /proc/net/dev | tail -n +3 |awk 'BEGIN{ print "网卡名称 入站数据流量(bytes) 出站数据流量(bytes)"} {print $1,$2,$10}' | column -t)

    #输出数据信息

    echo -e "\033[32m************************本机主要参数列表********************\033[0m"

    echo -e "本机IP地址列表:\033[32m$localip\033[0m"

    echo -e "本机主机名称:\033[32m$hostname\033[0m"

    echo -e "操作系统版本为:\033[32m$release\033[0m,内核版本:\033[32m$kernel\033[0m"

    echo -e "CPU型号为:\033[32m$cpu_info\033[0m,CPU内核数量:\033[32$kernel\033[0m"

    echo -e "本机总内存容量:\033[32m$mem_total\033[0m,剩余可用内存容量:\033[32m$mem_free\033[0m"

    echo -e "本机swap总容量:\033[32m$swap_local\033[0m,剩余swap容量:\033[32m$swap_free\033[0m"

    echo -e "CPU最近1分钟,5分钟,15分钟的平均负载分别为:\033[32m$load1 $load5 $load15\033[0m"

    echo -e "本机总账户数量为:\033[32m$users\033[0m,当前登录系统的账户数量:\033[32m$login_users\033[0m"

    echo -e "当前系统中启动的进程数量:\033[32m$procs\033[0m"

    echo -e "占用CPU资源最多的10个进程列表为:"

    echo -e "\033[32m$top_proc_cpu\033[0m"

    echo -e "占用CPU内存资源最多的10个进程列表为:"

    echo -e "\033[32m$top_proc_mem\033[0m"

    echo -e "CPU中断数量为:\033[32m$irq\033[0m,CPU上下文切换数量:\033[32m$cs\033[0m"

    echo -e "每个磁盘分区的总容量与剩余容量信息如下:"

    echo -e "$disk"

    echo -e "$tps"

    echo -e "$read_write"

    echo -e "$net_monitor"

    echo -e "\033[32m************************巡检结束********************\033[0m"


    脚本的运行结果


    /root/sys_info.sh

    提取磁盘性能指标,请稍后...

    ************************本机主要参数列表********************

    本机IP地址列表:127.0.0.1/8

    ....

    本机主机名称:  ..............

    操作系统版本为:CentOS Linux release 7.5.1804 (Core) ,内核版本:............

    CPU型号为:            Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz,CPU内核数量: ...............

    本机总内存容量:16324192,剩余可用内存容量:14519016

    本机swap总容量:,剩余swap容量:0

    CPU最近1分钟,5分钟,15分钟的平均负载分别为:1.19 0.44 0.37

    本机总账户数量为:48,当前登录系统的账户数量:2

    当前系统中启动的进城数量:247

    占用CPU资源最多的10个进程列表为:

    evolution-calen 65048

    gnome-software  65628

    evolution-calen 67732

    chrome          74140

    sogou-qimpanel  79252

    fcitx          81160

    mysqld          91256

    chrome          103384

    chrome          121404

    gnome-shell    171912

    占用CPU内存资源最多的10个进程列表为:

    evolution-calen 65048

    gnome-software  65628

    evolution-calen 67732

    chrome          74140

    sogou-qimpanel  79252

    fcitx          81160

    mysqld          91256

    chrome          103384

    chrome          121404

    gnome-shell    171912

    CPU中断数量为:294,CPU上下文切换数量:292

    每个磁盘分区的总容量与剩余容量信息如下:

    /dev/sda2  103080888  76076244

    /dev/sda1  307084240  227897560

    /dev/loop0  9176232    0

    网卡名称      入站数据流量(bytes)  出站数据流量(bytes)

    rhce-nic:      0                    0

    rhce:          0                    0

    private1-nic:  0                    0

    public2-nic:  0                    0

    public1-nic:  0                    0

    private2-nic:  0                    0

    eth0:          2247764              562741

    lo:            248                  248

    private1:      0                    0

    virbr0-nic:    0                    0

    virbr0:        0                    0

    private2:      0                    0

    vbr-nic:      0                    0

    public2:      0                    0

    public1:      0                    0

    vbr:          0                    0

    ************************巡检结束********************


    目前本人正在进行3.0版本的研究,需要完成对应阀值邮件报警的功能;

    相关文章

      网友评论

        本文标题:应用版日常巡检shell脚本

        本文链接:https://www.haomeiwen.com/subject/cvacwctx.html