获取服务器指标的信息

1. KB

shell 复制代码
#!/bin/bash
# 获取要监控的本地服务器IP地址
IP=$(ifconfig | grep -E 'inet (addr:)?' | grep -vE 'inet6|127.0.0.1|inet6' | awk '{print $2}' | cut -d: -f2 | head -n 1)
echo "IP地址:$IP"
# 获取cpu总核数
cpu_num=$(grep -c "model name" /proc/cpuinfo)
echo "cpu总核数:$cpu_num"
# 1、获取CPU利用率
cpu_user=$(top -b -n 1 | grep Cpu | awk '{print $2}' | cut -d'%' -f1)
echo "用户空间占用CPU百分比:$cpu_user"
cpu_system=$(top -b -n 1 | grep Cpu | awk '{print $4}' | cut -d'%' -f1)
echo "内核空间占用CPU百分比:$cpu_system"
cpu_idle=$(top -b -n 1 | grep Cpu | awk '{print $8}' | cut -d'%' -f1)
echo "空闲CPU百分比:$cpu_idle"
cpu_iowait=$(top -b -n 1 | grep Cpu | awk '{print $10}' | cut -d'%' -f1)
echo "等待输入输出占CPU百分比:$cpu_iowait"
# 2、获取CPU上下文切换和中断次数
cpu_interrupt=$(vmstat -n 1 1 | sed -n 3p | awk '{print $11}')
echo "CPU中断次数:$cpu_interrupt"
cpu_context_switch=$(vmstat -n 1 1 | sed -n 3p | awk '{print $12}')
echo "CPU上下文切换次数:$cpu_context_switch"
# 3、获取CPU负载信息
cpu_load_1min=$(uptime | awk -F'load average:' '{print $2}' | cut -d',' -f1 | tr -d ' ')
echo "CPU 1分钟前到现在的负载平均值:$cpu_load_1min"
cpu_load_5min=$(uptime | awk -F'load average:' '{print $2}' | cut -d',' -f2 | tr -d ' ')
echo "CPU 5分钟前到现在的负载平均值:$cpu_load_5min"
cpu_load_15min=$(uptime | awk -F'load average:' '{print $2}' | cut -d',' -f3 | tr -d ' ')
echo "CPU 15分钟前到现在的负载平均值:$cpu_load_15min"
cpu_task_length=$(vmstat -n 1 1 | sed -n 3p | awk '{print $1}')
echo "CPU任务队列长度:$cpu_task_length"
# 4、获取内存信息
mem_total=$(free -b | grep -i mem | awk '{print $2}')
echo "物理内存总量:$mem_total"
mem_sys_used=$(free -b | grep -i mem | awk '{print $3}')
echo "已使用内存总量(操作系统):$mem_sys_used"
mem_sys_free=$(free -b | grep -i mem | awk '{print $4}')
echo "剩余内存总量(操作系统):$mem_sys_free"
# 5、获取 swap 分区使用情况
swap_total=$(free -b | grep -i swap | awk '{print $2}')
echo "swap分区总量:$swap_total"
swap_used=$(free -b | grep -i swap | awk '{print $3}')
echo "swap分区已使用量:$swap_used"
swap_free=$(free -b | grep -i swap | awk '{print $4}')
echo "swap分区空闲量:$swap_free"
# 6、获取磁盘I/O统计信息
echo "指定设备(/dev/sda)的统计信息"
disk_sda_rs=$(iostat -kx 1 1 | grep "sda " | awk '{print $4}')
echo "每秒向设备发起的读请求次数:$disk_sda_rs"
disk_sda_ws=$(iostat -kx 1 1 | grep "sda " | awk '{print $5}')
echo "每秒向设备发起的写请求次数:$disk_sda_ws"
disk_sda_avgqu_sz=$(iostat -kx 1 1 | grep "sda " | awk '{print $9}')
echo "向设备发起的I/O请求队列长度平均值:$disk_sda_avgqu_sz"
disk_sda_util=$(iostat -kx 1 1 | grep "sda " | awk '{print $10}')
echo "向设备发起I/O请求的CPU时间百分占比:$disk_sda_util"

2. MB

shell 复制代码
#!/bin/bash
# 获取要监控的本地服务器IP地址
IP=$(ifconfig | grep -E 'inet (addr:)?' | grep -vE 'inet6|127.0.0.1|inet6' | awk '{print $2}' | cut -d: -f2 | head -n 1)
echo "IP地址:$IP"
# 获取cpu总核数
cpu_num=$(grep -c "model name" /proc/cpuinfo)
echo "cpu总核数:$cpu_num"
# 1、获取CPU利用率
cpu_user=$(top -b -n 1 | grep Cpu | awk '{print $2}' | cut -d'%' -f1)
echo "用户空间占用CPU百分比:$cpu_user%"
cpu_system=$(top -b -n 1 | grep Cpu | awk '{print $4}' | cut -d'%' -f1)
echo "内核空间占用CPU百分比:$cpu_system%"
cpu_idle=$(top -b -n 1 | grep Cpu | awk '{print $8}' | cut -d'%' -f1)
echo "空闲CPU百分比:$cpu_idle%"
cpu_iowait=$(top -b -n 1 | grep Cpu | awk '{print $10}' | cut -d'%' -f1)
echo "等待输入输出占CPU百分比:$cpu_iowait%"
# 2、获取CPU上下文切换和中断次数
cpu_interrupt=$(vmstat -n 1 1 | sed -n 3p | awk '{print $11}')
echo "CPU中断次数:$cpu_interrupt"
cpu_context_switch=$(vmstat -n 1 1 | sed -n 3p | awk '{print $12}')
echo "CPU上下文切换次数:$cpu_context_switch"
# 3、获取CPU负载信息
cpu_load_1min=$(uptime | awk -F'load average:' '{print $2}' | cut -d',' -f1 | tr -d ' ')
echo "CPU 1分钟前到现在的负载平均值:$cpu_load_1min"
cpu_load_5min=$(uptime | awk -F'load average:' '{print $2}' | cut -d',' -f2 | tr -d ' ')
echo "CPU 5分钟前到现在的负载平均值:$cpu_load_5min"
cpu_load_15min=$(uptime | awk -F'load average:' '{print $2}' | cut -d',' -f3 | tr -d ' ')
echo "CPU 15分钟前到现在的负载平均值:$cpu_load_15min"
cpu_task_length=$(vmstat -n 1 1 | sed -n 3p | awk '{print $1}')
echo "CPU任务队列长度:$cpu_task_length"
# 4、获取内存信息(单位转换成兆)
mem_total=$(free -m | grep -i mem | awk '{print $2}')
echo "物理内存总量:$mem_total MB"
mem_sys_used=$(free -m | grep -i mem | awk '{print $3}')
echo "已使用内存总量(操作系统):$mem_sys_used MB"
mem_sys_free=$(free -m | grep -i mem | awk '{print $4}')
echo "剩余内存总量(操作系统):$mem_sys_free MB"
# 5、获取 swap 分区使用情况(单位转换成兆)
swap_total=$(free -m | grep -i swap | awk '{print $2}')
echo "swap分区总量:$swap_total MB"
swap_used=$(free -m | grep -i swap | awk '{print $3}')
echo "swap分区已使用量:$swap_used MB"
swap_free=$(free -m | grep -i swap | awk '{print $4}')
echo "swap分区空闲量:$swap_free MB"
# 6、获取磁盘I/O统计信息(单位转换成兆)
echo "指定设备(/dev/sda)的统计信息"
disk_sda_rs=$(iostat -dx 1 1 | grep "sda " | awk '{print $4}')
echo "每秒向设备发起的读请求次数:$disk_sda_rs"
disk_sda_ws=$(iostat -dx 1 1 | grep "sda " | awk '{print $5}')
echo "每秒向设备发起的写请求次数:$disk_sda_ws"
disk_sda_avgqu_sz=$(iostat -dx 1 1 | grep "sda " | awk '{print $9}')
echo "向设备发起的I/O请求队列长度平均值:$disk_sda_avgqu_sz"
disk_sda_util=$(iostat -dx 1 1 | grep "sda " | awk '{print $12}')
echo "向设备发起I/O请求的CPU时间百分占比:$disk_sda_util%"
相关推荐
计算机安禾18 分钟前
【Linux从入门到精通】第31篇:防火墙漫谈——iptables与firewalld防护指南
linux·运维·php
下一页盛夏花开35 分钟前
ubuntu 20中安装QT以后出现红色空心断点
linux·运维·ubuntu
金色光环1 小时前
FreeModbus释放底层的 TCP 监听端口
服务器·网络·tcp/ip
sanshanjianke1 小时前
Thunderobot 911ME 笔记本 Linux 风扇控制研究
linux
sxgzzn3 小时前
光伏数智化综合平台:让光伏电站运维更智能、更高效
运维
fengyehongWorld4 小时前
TeraTerm ttl脚本登录wsl
linux·teraterm
乌托邦的逃亡者5 小时前
Linux中如何检测IP冲突
linux·运维·tcp/ip
一曦的后花园5 小时前
linux搭建promethes并对接node-exporter指标
linux·运维·服务器
乌托邦的逃亡者5 小时前
CentOS/Openeuler主机中,为一个网卡设置多个IP地址
linux·运维·网络·tcp/ip·centos