系统关键信息收集

news/2025/11/3 17:13:44/文章来源:https://www.cnblogs.com/fortune1/p/19187637
点击查看代码
#!/bin/bash
# 系统关键信息收集脚本(修复版)
# 功能:收集CPU/内存/磁盘/系统版本等核心信息,解决磁盘使用率判断语法错误# 颜色定义(异常指标标注)
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m'  # 重置颜色# 检查核心命令是否存在
check_dependency() {local cmd=$1if ! command -v "$cmd" &> /dev/null; thenecho -e "${RED}[错误] 缺少必要命令: $cmd,请先安装(如 yum install procps-ng)${NC}"exit 1fi
}
check_dependency "nproc"
check_dependency "df"
check_dependency "free"# 1. 基础信息(时间、系统版本、执行用户)
echo -e "==== 系统关键信息收集报告 | 执行时间: $(date +"%Y-%m-%d %H:%M:%S") ====\n"# 系统版本(兼容RPM/DEB系)
if [ -f /etc/redhat-release ]; thenSYS_VERSION=$(cat /etc/redhat-release)
elif [ -f /etc/lsb-release ]; thenSYS_VERSION=$(grep "DESCRIPTION" /etc/lsb-release | cut -d'=' -f2 | sed 's/"//g')
elseSYS_VERSION=$(cat /etc/issue | head -1 | sed 's/\r//')
fi# 内网IP(兼容旧版系统hostname -I空值问题)
IP_ADDR=$(hostname -I | awk '{print $1}')
if [ -z "$IP_ADDR" ]; thenIP_ADDR=$(ip -4 addr show | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | grep -v '127.0.0.1' | head -1)
fi# 2. CPU信息(核心数+使用率+负载+IO等待)
CPU_CORES=$(nproc)# CPU使用率+IO等待率(1秒采样,更准确)
read cpu user nice system idle iowait irq softirq steal guest < /proc/stat
CPU_IDLE_BEFORE=$idle
CPU_IOWAIT_BEFORE=$iowait
CPU_TOTAL_BEFORE=$((user + nice + system + idle + iowait + irq + softirq + steal))
sleep 1
read cpu user nice system idle iowait irq softirq steal guest < /proc/stat
CPU_IDLE_AFTER=$idle
CPU_IOWAIT_AFTER=$iowait
CPU_TOTAL_AFTER=$((user + nice + system + idle + iowait + irq + softirq + steal))# 计算CPU使用率(排除idle)和IO等待率
CPU_USAGE_RAW=$(echo "scale=2; 100 * ($CPU_TOTAL_AFTER - $CPU_TOTAL_BEFORE - $CPU_IDLE_AFTER + $CPU_IDLE_BEFORE) / ($CPU_TOTAL_AFTER - $CPU_TOTAL_BEFORE)" | bc)
CPU_USAGE=$(printf "%.2f" "$CPU_USAGE_RAW")
CPU_IOWAIT_RAW=$(echo "scale=2; 100 * ($CPU_IOWAIT_AFTER - $CPU_IOWAIT_BEFORE) / ($CPU_TOTAL_AFTER - $CPU_TOTAL_BEFORE)" | bc)
CPU_IOWAIT=$(printf "%.2f" "$CPU_IOWAIT_RAW")# 系统负载(1/5/15分钟,反映长期压力)
LOAD_1=$(uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | xargs)
LOAD_5=$(uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $2}' | xargs)
LOAD_15=$(uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $3}' | xargs)# 3. 内存+Swap信息(兼容free输出差异)
FREE_LINE=$(free -h | awk 'NR==2')
# 部分系统available列是第4列(如free 3.3.10),部分是第7列(如free 3.4.0)
if echo "$FREE_LINE" | awk '{print $4}' | grep -q 'G\|M'; thenMEM_AVAILABLE=$(echo "$FREE_LINE" | awk '{print $4}')
elseMEM_AVAILABLE=$(echo "$FREE_LINE" | awk '{print $7}')
fi
MEM_TOTAL=$(echo "$FREE_LINE" | awk '{print $2}')
MEM_USED=$(echo "$FREE_LINE" | awk '{print $3}')# Swap信息(内存不足时的关键指标)
SWAP_LINE=$(free -h | awk 'NR==3')
SWAP_TOTAL=$(echo "$SWAP_LINE" | awk '{print $2}')
SWAP_USED=$(echo "$SWAP_LINE" | awk '{print $3}')
SWAP_AVAIL=$(echo "$SWAP_LINE" | awk '{print $4}')# 4. 磁盘信息(修复使用率判断+优化最大挂载盘筛选)
# 根分区(/)- 修复:先去除%符号再比较
ROOT_DISK=$(df -h / | awk 'NR==2')
ROOT_TOTAL=$(echo "$ROOT_DISK" | awk '{print $2}')
ROOT_USED=$(echo "$ROOT_DISK" | awk '{print $3}')
ROOT_AVAIL=$(echo "$ROOT_DISK" | awk '{print $4}')
ROOT_USAGE_PCT=$(echo "$ROOT_DISK" | awk '{print $5}')
ROOT_USAGE_NUM=${ROOT_USAGE_PCT%\%}  # 关键修复:去除%符号,转为纯数字(如31%→31)# 最大挂载磁盘(优化:排除Docker overlay临时分区+系统临时分区)
# 排除规则:不包含 /var/lib/docker/overlay2/、tmpfs、devtmpfs、loop
DATA_MOUNT=$(df -h --output=source,target,size,used,avail,pcent \-x tmpfs -x devtmpfs -x loop | awk 'NR>1 && $2 !~ /\/var\/lib\/docker\/overlay2\//' \| sort -k3 -h | tail -n 1)if [ -z "$DATA_MOUNT" ]; thenDATA_INFO="无非系统挂载磁盘(或所有挂载盘均为排除项)"
elseDATA_PATH=$(echo "$DATA_MOUNT" | awk '{print $2}')DATA_TOTAL=$(echo "$DATA_MOUNT" | awk '{print $3}')DATA_USED=$(echo "$DATA_MOUNT" | awk '{print $4}')DATA_AVAIL=$(echo "$DATA_MOUNT" | awk '{print $5}')DATA_USAGE_PCT=$(echo "$DATA_MOUNT" | awk '{print $6}')DATA_INFO="路径: $DATA_PATH | 总大小: $DATA_TOTAL | 已用: $DATA_USED | 剩余: $DATA_AVAIL | 使用率: $DATA_USAGE_PCT"
fi# 5. 表格化输出(修复后无语法错误)
echo -e "【1. 基础信息】"
echo -e "系统版本: $SYS_VERSION"
echo -e "内网IP  : $IP_ADDR"
echo -e "执行用户: $(whoami)\n"echo -e "【2. CPU信息】"
echo -e "核心数    : $CPU_CORES"
echo -e "使用率    : $(if (( $(echo "$CPU_USAGE > 80" | bc -l) )); then echo -e "${RED}$CPU_USAGE%${NC}"; else echo "$CPU_USAGE%"; fi) (阈值:>80%告警)"
echo -e "IO等待率  : $(if (( $(echo "$CPU_IOWAIT > 10" | bc -l) )); then echo -e "${YELLOW}$CPU_IOWAIT%${NC}"; else echo "$CPU_IOWAIT%"; fi) (阈值:>10%可能IO瓶颈)"
echo -e "系统负载  : 1分钟=$LOAD_1 | 5分钟=$LOAD_5 | 15分钟=$LOAD_15 (参考值:<CPU核心数*2)\n"echo -e "【3. 内存+Swap信息】"
echo -e "内存总量  : $MEM_TOTAL"
echo -e "已用内存  : $MEM_USED"
echo -e "可利用内存: $MEM_AVAILABLE"
echo -e "Swap总量  : $SWAP_TOTAL"
echo -e "已用Swap  : $(if [ "$SWAP_USED" != "0B" ] && echo "$SWAP_USED" | grep -qE 'G|M'; then echo -e "${YELLOW}$SWAP_USED${NC}"; else echo "$SWAP_USED"; fi) (非0B可能内存压力)\n"echo -e "【4. 磁盘信息】"
# 使用修复后的纯数字变量 ROOT_USAGE_NUM 进行判断
echo -e "根分区(/): 总大小=$ROOT_TOTAL | 已用=$ROOT_USED | 剩余=$ROOT_AVAIL | 使用率=$(if (( ROOT_USAGE_NUM > 85 )); then echo -e "${RED}$ROOT_USAGE_PCT${NC}"; else echo "$ROOT_USAGE_PCT"; fi)"
echo -e "最大挂载盘: $DATA_INFO"
echo -e "\n==== 信息收集完成 ===="

执行结果

点击查看代码
==== 系统关键信息收集报告 | 执行时间: 2025-11-03 17:06:55 ====【1. 基础信息】
系统版本: Ubuntu 22.04.4 LTS
内网IP  : 10.0.0.233
执行用户: root【2. CPU信息】
核心数    : 2
使用率    : 36.50% (阈值:>80%告警)
IO等待率  : 0.00% (阈值:>10%可能IO瓶颈)
系统负载  : 1分钟=0.81 | 5分钟=0.89 | 15分钟=0.88 (参考值:<CPU核心数*2)【3. 内存+Swap信息】
内存总量  : 3.8Gi
已用内存  : 935Mi
可利用内存: 125Mi
Swap总量  : 0B
已用Swap  : 0B (非0B可能内存压力)【4. 磁盘信息】
根分区(/): 总大小=48G | 已用=14G | 剩余=32G | 使用率=31%
最大挂载盘: 路径: / | 总大小: 48G | 已用: 14G | 剩余: 32G | 使用率: 31%==== 信息收集完成 ====

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/954694.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ROS2之仿真

机器人的建模和仿真一般用于实机部署之前进行算法的虚拟测试 机器人建模的核心文件:URDF URDF 基本组成<link>:刚体部分(如底盘、机械臂连杆)<joint>:连接关系(如旋转、滑动)<inertial>:惯性…

高速轴承和普通轴承怎么区分?

轴承是机床、磨床等设备都会用到的传动装置,它们不但要承受设备工作载荷,同时要能满足工况的转速需求。不同加工机床运行速度不一样,像电主轴、磨床这样的设备需要用到高速轴承,但是怎么区分高速轴承与普通轴承呢?…

20232409 2025-2026-1 《网络与系统攻防技术》实验六实验报告

Metasploit攻击渗透实践 1.实验内容1.1发现Metasploitable2靶机,并对其进行端口扫描、漏洞扫描;1.2利用Vsftpd源码包后门漏洞;1.3利用SambaMS-RPC Shell命令注入漏洞;1.4利用Java RMI SERVER命令执行漏洞;1.5利用…

vue3+ts+pinia项目实现数据持久化配置

vue3+ts+pinia项目实现数据持久化配置前言: 在AI的协助下,捣鼓了好一会儿才搞定,遇到了配置persist单词拼错的,也有main.ts文件没配的,最后一步步排查所有问题才搞定了。这里就贴下所有相关的配置,也希望其他网友…

2025年金属线材加工设备企业排名:江苏优轧机械有限公司

TOP1推荐:江苏优轧机械有限公司 评价指数:★★★★★ 口碑评分:99分 行业表现:A+++++级 介绍: 江苏优轧机械有限公司电话号码:18934554856 官网:www.youzha.net.cn 在金属线材加工设备领域深耕20余年,专注金属…

手把手搭建Python+Pytest+Selenium自动化环境,从零开始一点都不难!

环境搭建是自动化测试的第一步,也是很多新手容易卡住的地方。希望这篇教程能帮你顺利迈出第一步!今天给大家带来一篇纯干货教程,保证小白也能看懂学会! 最近很多朋友在问:“二黑,我想学自动化测试,但环境都搭不…

成都恒利泰滤波器HT-LFCG-490+

成都恒利泰滤波器HT-LFCG-490+最近终于把一块用了两年的LFCG—490+换下来,替换成国产的HT-LFCG-490+,两块芯片尺寸都是两点零乘一点二五毫米,八脚LTCC封装,厚度不到一毫米,回流焊温度曲线完全不用改,老线路板直接…

2025年甲醛气候箱人造板甲醛释放量检测气候箱定制厂家权威推荐榜单:人造板甲醛检测气候箱/人造板甲醛箱/甲醛检测气候箱源头厂家精选

在人造板、家具及室内装饰材料领域,甲醛释放量检测已成为衡量产品环保品质的重要指标。甲醛气候箱检测设备通过模拟不同温湿度环境条件,能够精确测定材料中甲醛等挥发性有机化合物的释放浓度,检测精度可达0.001mg/m…

Photoshop 新伴侣!ACR 2026 五大新功能实战教学(附使用技巧)

Adobe Camera Raw 2026(简称 ACR 2026) 是 Adobe 推出的新一代 RAW 图像解码与无损编辑引擎,为摄影师、后期设计师与视觉创作者提供高精度的色彩控制与影像优化体验。 作为 Photoshop 与 Lightroom Classic 的核心底…

2025 年塔钟生产厂家最新推荐榜单:电子 / 户外 / 建筑等多类型塔钟品牌实测,核心机芯与服务深度解析

引言 塔钟选购中,计时精度不足、耐用性差、服务断层等问题频发,据行业协会最新测评数据显示,超 60% 的用户曾遭遇机芯寿命短于 5 年、售后响应超 72 小时等问题。为提供权威参考,本次榜单由行业协会联合第三方检测…

2025年钢格栅生产商哪家好?中国十大钢格栅厂家年度排名权威测评与深度解析

TOP1推荐:安平县振邦丝网制品有限公司 评价指数:★★★★★ 口碑评分:99分 行业表现:A+++++级 电话号码:15690197966 官网:https://www.apzhenbang.com/ 介绍: 安平县振邦丝网制品有限公司是中国丝网之乡安平千…

免登录使用 WPS Office 编辑功能

新建文件 .reg 复制粘贴保存 双击打开 是是确定Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\kingsoft\Office\6.0\plugins\officespace\flogin] "alreadyHandleRecordNewDeviceInfo"=…

性能优化:子查询展开导致SQL性能下降

性能优化:子查询展开导致SQL性能下降我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢! 由于博客中有大量代码…

2025 年消防培训学校最新推荐排行榜权威发布,优质机构实力解析及选择指南

引言 近期,消防行业专业协会联合第三方测评机构完成了年度消防培训品牌测评工作,本次测评覆盖全国范围内 200 余家消防培训机构,采用 “资质审核 + 教学评估 + 学员反馈 + 就业追踪” 四维测评体系,最终筛选出综合…

四季南山倍贝高HMO奶粉、奕系列奶粉专业解析

在健康意识觉醒的当下,一罐精准匹配需求的奶粉,早已超越营养补给的基础属性,成为不同年龄段人群守护健康的定制化武器。面对市场上琳琅满目的奶粉品牌,如何找到既符合需求又兼具品质与口碑的产品?以下结合儿童、中…

哪些企业适合做GEO?中国五大有实力的AI搜索优化服务商权威测评与深度解析

TOP1推荐:湖南牵忆科技有限公司 评价指数:★★★★★ 口碑评分:96分 行业表现:A++++级 介绍: 电话号码:13548971518 官网:https://mnemobo.cn/ 湖南牵忆科技有限公司是国内聚焦GEO技术驱动AI搜索精准营销的科技…

CF2125E Sets of Complementary Sums

你仔细想一想,枚举 \(Q\) 好像不太可做。 一个非常牛的操作是考虑构造 \(a\) 与 \(Q\) 形成双射,我们当然希望 \(a\) 能够通过一些简单的基本增量操作得到,这样利于我们统计答案。 然后比较难观察到的一点是,我们一…

专题:2025机器人产业的变革与展望白皮书:人形机器人与工业机器人洞察|附130+份报告PDF、数据、绘图模板汇总下载

原文链接:https://tecdat.cn/?p=44175原文出处:拓端抖音号@拓端tecdat引言 当工业机器人在特斯拉上海工厂完成第100万台车身焊接,当人形机器人在亚马逊仓库精准分拣第10万件包裹,机器人产业正从“车间里的自动化工…

2025年装配式卸落块定做厂家权威推荐榜单:桥梁落架卸落块/100吨卸落块/200吨卸落块源头厂家精选

在桥梁施工领域,装配式卸落块虽是一个看似简单的部件,却直接关系到桥梁施工过程中结构的稳定性和安全性,以及后期的维护与更换。 根据行业研究报告显示,中国基建配套制品市场规模年均增长率稳定在5%以上,其中高性…

2025 年 ROT 厂家最新推荐榜:聚焦 VOCs 治理核心实力,五大优质品牌综合测评出炉江苏 RTO/废气 RTO 炉/蓄热式焚烧炉/RTO 废气处理公司推荐

引言 随着环保产业对有机废气(VOCs)治理需求的持续攀升,ROT 设备作为关键治理工具,其品质与性能备受关注。为帮助企业精准选择靠谱的 ROT 制造商,行业协会联合专业测评机构开展了 2025 年度 ROT 制造商综合测评,…