当前位置: 首页 > news >正文

获取服务器指标的信息

1. KB

#!/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

#!/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%"
http://www.dtcms.com/a/352747.html

相关文章:

  • 幂等性设计艺术:在分布式重试风暴中构筑坚不可摧的防线
  • 大批量查询数据库大字段导致OOM问题
  • TCP服务端并发模型
  • 第5章 Excel公式与函数应用指南(4):日期和时间函数
  • Paimon——官网阅读:主键表
  • 计算神经科学数学建模编程深度前沿方向研究(下)
  • 【C++】类型系统:内置类型与自定义类型的对比
  • super(msg)层层上抛
  • 数据结构青铜到王者第七话---队列(Queue)
  • 基于Spring Boot的考研辅导知识共享平台-项目分享
  • Node.js 多版本管理工具 nvm 的安装与使用教程(含镜像加速与常见坑)
  • 计算机组成原理实验报告
  • Kafka架构以及组件讲解
  • 【Kafka】重点概念和架构总结
  • Unity 串口通信
  • 解开 Ansible 任务复用谜题:过滤器用法、Include/Import 本质差异与任务文件价值详解
  • Writer-你的私人内容创作助手
  • TCP并发服务器构建
  • TensorFlow 深度学习 | Layer 基础知识介绍
  • 浅谈Elasticsearch数据写入流程的refresh和flush操作
  • 智能一卡通系统通过集成身份识别、权限管理、数据联动等技术,实现多场景一体化管理。以下是多奥基于最新技术趋势和应用案例的系统解析
  • screen命令
  • AI一周事件(2025年8月20日-8月26日)
  • 74hc4094芯片点亮LED闪烁问题的解决
  • JS(面试)
  • 深度学习——激活函数
  • 碳化硅衬底 TTV 厚度不均匀性测量的特殊采样策略
  • Redis哨兵机制:高可用架构的守护神!⚔️ 主从秒级切换实战指南
  • 力扣LCP 46. 志愿者调配随笔
  • 基于Spring Boot+Vue的生活用品购物平台/在线购物系统/生活用户在线销售系统/基于javaweb的在线商城系统