获取服务器指标的信息

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%"
相关推荐
一个天蝎座 白勺 程序猿8 小时前
KingbaseES数据库归档重做日志文件管理:从配置到运维的实战指南
运维·数据库·oracle·kingbasees·金仓数据库
天诰10 小时前
SA-K-11 检索会消失吗与四个未解问题
java·服务器·人工智能·python·机器学习·ai编程
2035去旅行11 小时前
bootcmd 详细讲解
linux·嵌入式·arm·soc
分布式存储与RustFS12 小时前
镜像仓库的层别堆本地盘:用 RustFS 给 Docker Registry 当 S3 后端
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
陈希12312 小时前
Linux 防火墙配置实战:firewalld、iptables 与云安全组
linux·运维·服务器
女神下凡13 小时前
芯参谋(95):嵌入式文件系统_开发指南
linux·服务器·arm开发·驱动开发·设计规范
@兽血沸腾13 小时前
Windows系统安装Jenkins部署应用至远程Windows服务器操作指南
运维·服务器·jenkins
且从容.16 小时前
Ubuntu安装flume
linux·ubuntu·flume
承渊政道17 小时前
Linux网络学习【Reactor反应堆模式】
linux·网络·学习·ubuntu·reactor
讯捷蓝达19 小时前
戴尔R720xd服务器卡死在 “Configuring Memory...Done“,换了内存还是卡?问题根本不在内存
运维·服务器