系统性能监控脚本!
Posted handsomeboy-东
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统性能监控脚本!相关的知识,希望对你有一定的参考价值。
性能监控脚本
前言:白飘党记得点赞哦o( ̄▽ ̄)ブ
#!/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 -m | awk '/Mem/{print $2}')
#剩余内存容量
mem_free=$(free -m | awk '/Mem/{print $NF}')
#总swap容量
swap_total=$(free -m | awk '/Swap/{print $2}')
#剩余swap容量
swap_free=$(free -m | awk '/Swap/{print $NF}')
#磁盘信息
disk=$(df -h | 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 | tail -n +2 | wc -l)
#系统总账户数量
users=$(cat /etc/passwd | wc -l)
#CPU型号
cpu_info=$(LANG=C lscpu | awk -F: '/Model name/{print $2}' | sed 's/^[ \\t]*//')
#CPU内核数量
cpu_core=$(awk '/processor/{core++} END{print core}' /proc/cpuinfo)
#安装性能软件
yum install -y 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 -5)
#占用CPU资源最多的5个进程列表
top_proc_cpu=$(ps --no-headers -eo comm,pcpu | sort -k2 -n | tail -5)
#获取网卡流量,接受、发送的数据流量,单位为字节
net_monitor=$(cat /proc/net/dev | tail -n +3 | \\
awk 'BEGIN{print "网卡名称 入站数据流量 出战数据流量"}{print $1,$2,$10}' | column -t)
clear
#输出数据信息
echo -e "\\033[33m-------------------------------------本机主要数据参数表--------------------------------[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[32m$cpu_core\\033[0m"
echo -e "本机总内存容量: \\033[32m$mem_total M\\033[0m,剩余可用内存容量: \\033[32m$mem_free M\\033[0m"
echo -e "本机swap总容量: \\033[32m$swap_total M\\033[0m,剩余swap容量: \\033[32m$swap_free M\\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资源最多的5个进程列表为: "
echo -e "\\033[32m$top_proc_cpu\\033[0m"
echo -e "占用内存资源最多的5个进程列表为: "
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 "\\033[34m每个磁盘分区的总容量和剩余容量信息如下: \\033[0m"
echo -e "$disk"
echo -e "$tps"
echo -e "$read_write"
echo -e "$net_monitor"
echo -e "\\033[33m---------------------------------------The End------------------------------------------/033[0m"
以上是关于系统性能监控脚本!的主要内容,如果未能解决你的问题,请参考以下文章