当前位置:首页>Linux>开源分享 | Linux Auto Inspection:零依赖 Linux 服务器一键巡检工具

开源分享 | Linux Auto Inspection:零依赖 Linux 服务器一键巡检工具

  • 2026-10-11 07:35:58
开源分享 | Linux Auto Inspection:零依赖 Linux 服务器一键巡检工具

服务器巡检,你怎么做?

  • • 手动敲命令:hostname、free、df、iostat...一个一个敲,复制粘贴拼报告
  • • 用监控工具:Prometheus、Zabbix 配置复杂,巡检还要手动看面板
  • • 写脚本收集:自己写 Bash 脚本,维护麻烦,跨发行版兼容难

有没有想过,一个工具能:一条命令完成 17 大类巡检、自动生成 HTML 报告、零依赖开箱即用、支持 30+ Linux 发行版?

今天分享一个开源项目——Linux Auto Inspection,它就是这么设计的。

它是什么?

Linux Auto Inspection 是一款 面向运维与 SRE 的 Linux 服务器一键巡检工具。

核心定位:

  • • 一条命令完成系统全方位巡检:CPU、内存、磁盘、网络、进程、安全、日志...17 大类全覆盖
  • • 自动生成工程师风格 HTML 报告:简洁表格、徽章、颜色码,无花哨装饰
  • • 零依赖设计:系统自带 Bash 4.0+ 就能运行,不装 Python、不装 pyvmomi
  • • 跨发行版兼容:30+ 主流 Linux 发行版,没有 systemd/iproute2 也能运行
巡检报告

项目基本信息:

属性
详情
GitHub
https://github.com/Aidan-996/Linux_Auto_Inspection
Stars
82
许可证
MIT
最新版本
v2.5(2026-05-25)
技术栈
Bash(纯 Shell,97522 行)

这个项目有意思的点:纯 Bash 实现,零依赖——不假设你有什么命令,全部自动 fallback。这是真正考虑生产环境复杂性的设计。

为什么需要这个工具?

Linux 服务器巡检的痛点:

痛点
传统做法
问题
手动敲命令
hostname、free、df、iostat...逐个执行
费时间,漏检项,复制粘贴拼报告麻烦
跨发行版兼容
针对不同发行版写不同脚本
RHEL 用 systemctl,Ubuntu 用 service,维护成本高
命令不存在
安装额外依赖包
生产环境可能没 iproute2、sysstat、docker
报告生成
手动复制粘贴到 Excel/Word
格式不统一,效率低
大磁盘扫描
find 扫描大文件
几 TB 磁盘扫描几分钟,阻塞巡检

Linux Auto Inspection 的做法:

一条命令 → 自动检测发行版 → 适配命令路径 → 执行17大类检查 → 生成HTML报告

一个脚本搞定:检测 → 兼容 → 执行 → 报告,8-15 秒完成。

核心功能详解

1. 17 大类检查维度

这是项目的核心价值——覆盖运维日常巡检的所有关键项。

序号
维度
检查内容
1
主机基本信息
hostname、uname、CPU 型号、内存规格、BIOS 信息
2
CPU 使用率与负载
/proc/stat 实时计算、/proc/loadavg 负载
3
内存与 Swap
/proc/meminfo 详细数据、free 输出、Swap 使用率
4
窒盘使用率 + Inode
df -h 容量、df -i Inode 使用率
5
窒盘 I/O 性能
iostat(fallback /proc/diskstats)
6
大文件 TOP N
find + du 扫描大文件,可跳过
7
文件描述符
/proc/sys/fs/file-nr 已用/限制/最大
8
网络(网卡/TCP/路由)
ip addr/ifconfig、ss/netstat、路由表
9
进程状态
僵尸进程、D 状态进程、长时间运行进程
10
安全检查
SSH 配置、账户状态、SUID 文件、登录记录
11
定时任务
crontab、/etc/cron.d/*
12
关键服务
systemctl + service + chkconfig 三轨
13
Docker/Podman 容器
docker/podman ps、images 列表
14
内核参数
sysctl -a 关键参数
15
系统更新
多包管理器适配检查待更新包
16
系统日志
dmesg/journalctl 异常、OOM、认证失败
17
NTP 时间同步
chronyc/ntpq/ntpstat/timedatectl 四套
(+)
SSL 证书过期
openssl x509 检查证书有效期

这个覆盖范围足够应付日常巡检——从硬件信息到安全配置,从性能指标到容器状态,一个脚本全搞定。

2. 零依赖设计

这是项目的技术亮点——不假设你有什么命令。

传统巡检脚本的问题:

# 假设有 iproute2
ip addr show

# 没装呢?报错

Linux Auto Inspection 的做法:

# 双轨 fallback
if
 command -v ip &> /dev/null; then
    ip addr show
elif
 command -v ifconfig &> /dev/null; then
    ifconfig
else

    # 从 /sys/class/net 读取

fi

核心 helper 函数:

函数
作用
detect_os()
自动识别发行版和版本号
safe_service_status()
systemctl/service/chkconfig 三轨 fallback
safe_dmesg()
dmesg/journalctl -k fallback
detect_timezone()
timedatectl/date fallback

这个设计让脚本在任何环境都能运行——没有 systemd 用 sysvinit,没有 iproute2 用 ifconfig,没有 iostat 用 /proc/diskstats。

3. 跨发行版兼容

支持 30+ Linux 发行版:

发行版家族
支持状态
RHEL 系列
RHEL 7/8/9、CentOS 7/8/9、Rocky 8/9、AlmaLinux 8/9、Oracle Linux、Fedora、Amazon Linux
Debian 系列
Ubuntu 18/20/22/24、Debian 10/11/12
SUSE 系列
SUSE、openSUSE
国产系统
Kylin V10、NeoKylin、UOS
Arch 系列
Arch、Manjaro(新增 pacman 支持)
Alpine
部分兼容(busybox grep/awk 部分输出退化)
CentOS 6/RHEL 6
部分兼容(bash 4.1.2 + sysvinit fallback)
CentOS 5
不支持(bash 3.x 不支持关联数组)

![发行版兼容示意](图片占位符:支持的发行版矩阵展示)

兼容性设计亮点:

功能
适配策略
包管理器
yum/dnf/apt/pacman/zypper/opkg 多轨
服务管理
systemctl/service/chkconfig 三轨
NTP 时间源
chronyc/ntpq/ntpstat/timedatectl/ntpctl 四套
防火墙
firewalld/ufw/nftables/iptables/SuSEfirewall2 五套
IP/路由命令
hostname -I/ip route → ifconfig/netstat -rn fallback

这个设计让脚本在新老系统都能跑——CentOS 7 用 systemctl,CentOS 6 用 service,都能正常工作。

4. 自动生成 HTML 报告

这是项目的输出亮点——工程师风格 HTML 报告。

报告特点:

特点
说明
简洁表格
数据结构清晰,一目了然
颜色徽章
状态一目了然:绿色正常、黄色警告、红色异常
无花哨装饰
工程师风格,不搞花里胡哨
单文件 HTML
直接打开查看,无需服务器

输出示例:

CPU 使用率: 23.5% ✓
内存使用率: 78.2% ⚠
磁盘使用率: 95.1% ✗
僵尸进程: 0 ✓

报告路径:

/tmp/inspect_report/hostname_YYYYMMDD_HHMMSS.html

也支持 JSON 输出:

./linux_inspect.sh -f json

5. 命令行参数灵活控制

这是项目的实用性设计——针对不同场景提供参数。

用法: ./linux_inspect.sh [选项]

选项:
  -o, --output FILE       指定输出文件路径
  -f, --format FORMAT     输出格式: html(默认)| json
  -v, --verbose           显示详细 debug 日志
  -q, --quiet             静默模式,只输出报告路径
  --no-large-file-scan    跳过大文件扫描(大磁盘提速)
  --skip-update-check     跳过包管理器更新检查(内网无外网)
  --skip-ssl-check        跳过 SSL 证书过期检查
  --fast                  快速模式(三个 skip 全开)
  -h, --help              显示帮助

实用场景:

参数组合
场景
--fast
几 TB 大磁盘环境,跳过大文件扫描,8-15 秒完成
--skip-update-check
内网环境无外网,跳过 yum/apt update 检查
-f json
输出 JSON 供其他系统集成
-q
自动化脚本调用,只取报告路径

如何使用?

快速开始

三种方式,任选一种:

# 方式 1:git clone(推荐)
git clone https://github.com/Aidan-996/Linux_Auto_Inspection.git
cd
 Linux_Auto_Inspection && bash linux_inspect.sh

# 方式 2:wget 单文件

wget -O linux_inspect.sh https://raw.githubusercontent.com/Aidan-996/Linux_Auto_Inspection/main/linux_inspect.sh
chmod
 +x linux_inspect.sh && ./linux_inspect.sh

# 方式 3:一行流

curl -sL https://raw.githubusercontent.com/Aidan-996/Linux_Auto_Inspection/main/linux_inspect.sh | bash

执行后:

  • • 输出:/tmp/inspect_report/hostname_YYYYMMDD_HHMMSS.html
  • • 时间:8-15 秒(默认),--fast 模式更快

查看报告

# 浏览器打开
firefox /tmp/inspect_report/hostname_20260527_143022.html

# 或直接查看路径

ls
 /tmp/inspect_report/

报告包含:

  • • 主机基本信息
  • • 各维度检查结果
  • • 异常项汇总
  • • 总体建议

快速模式

大磁盘环境:

./linux_inspect.sh --fast

跳过三项:

  • • 大文件扫描
  • • 包管理器更新检查
  • • SSL 证书过期检查

时间:3-5 秒。

内网环境

无外网连接:

./linux_inspect.sh --skip-update-check

跳过 yum/apt update 检查,避免网络超时。

JSON 输出

集成到其他系统:

./linux_inspect.sh -f json -o /var/log/inspect.json

输出结构化 JSON,方便 API 或脚本处理。

静默模式

自动化调用:

./linux_inspect.sh -q
# 输出:/tmp/inspect_report/hostname_20260527_143022.html

只输出报告路径,适合 cron 定时任务。

Windows 编辑后修复

如果 Windows 编辑过脚本:

sed -i 's/\r$//' linux_inspect.sh

修复 CRLF 行尾问题。

与其他巡检方案对比

对比项
手动命令
Prometheus/Zabbix
自己写脚本
Linux Auto Inspection
部署复杂度
无
高(服务端+客户端)
低
极低(单文件)
学习成本
低
高(配置告警规则)
中
低(一条命令)
跨发行版兼容
手动适配
Agent 覆盖主流
要自己写
30+ 发行版自动适配
依赖安装
无
Agent 需安装
可能需要
零依赖
报告生成
手动拼
Web 面板
自己写
自动 HTML
定时巡检
cron + 手动看
自动告警
cron
cron + 报告
覆盖维度
随机
配置决定
自己写
17 大类预设

Linux Auto Inspection 的差异化:

  1. 1. 零依赖:Bash 4.0+ 就能跑,不装 Python、不装 sysstat
  2. 2. 单文件:wget 一个文件就能用
  3. 3. 跨发行版:30+ 发行版自动适配
  4. 4. Fallback 设计:没有命令自动降级,不报错
  5. 5. 工程师风格报告:简洁实用,不花哨

适用场景

我觉得 Linux Auto Inspection 适合这些场景:

场景
说明
服务器交接巡检
新接手服务器,快速了解系统状态
定期健康检查
cron 定时执行,生成报告存档
故障排查前检查
出问题先巡检,了解系统状态
安全审计
SSH 配置、SUID 文件、登录记录
资产盘点
主机信息、硬件规格、服务状态
容器环境巡检
Docker/Podman 容器状态检查

适合人群:运维工程师、SRE、系统管理员、DevOps。

不适合的场景:如果你需要实时监控、复杂告警规则、历史数据存储,用 Prometheus/Zabbix 更合适。Linux Auto Inspection 是巡检工具,不是监控平台。

我的看法

我觉得 Linux Auto Inspection 有几个亮点:

  1. 1. 零依赖设计是真正考虑生产环境:很多巡检脚本假设有 iproute2、sysstat、docker。但生产环境可能最小化安装,没有这些包。Linux Auto Inspection 全部 fallback——没有 ip 用 ifconfig,没有 iostat 用 /proc/diskstats。这个设计体现生产实战经验。
  2. 2. 跨发行版兼容覆盖面广:30+ 发行版,从 RHEL 到 Ubuntu,从国产系统到 Arch。包管理器多轨、服务管理三轨、NTP 四套。这个适配工作量不小,但解决了运维痛点——不用针对不同系统写不同脚本。
  3. 3. 单文件设计部署简单:wget 一个文件就能用,不用 git clone 整个项目。这个设计适合生产环境快速部署——SSH 到服务器,wget,bash,8-15 秒拿到报告。
  4. 4. 命令行参数设计实用:--fast 跳过大文件扫描,--skip-update-check 跳过网络检查,-f json 输出结构化数据。这些参数解决实际场景问题——大磁盘环境、内网环境、系统集成。
  5. 5. 生产事故修复体现实战经验:v2.5 修复的 CRLF 行尾、pipefail 算术崩,都是真实生产问题。Windows 编辑脚本导致 bash 崩,这个问题很多运维遇到过。项目用 .gitattributes 锁定 LF 行尾,从根本上解决。
  6. 6. MIT 开源:代码透明,可以二次开发定制。
  7. 7. 迭代活跃:2026 年 4 月创建,5 月已发布 v2.5,10+ 版本迭代。从 60 秒优化到 8-15 秒,跨发行版兼容大改。这个迭代速度体现项目重视用户体验。

但也有一些考虑:

  • • 不支持 CentOS 5:Bash 3.x 不支持关联数组,老系统用不了
  • • Alpine 部分兼容:busybox 的 grep/awk 功能受限,部分输出退化
  • • 纯 Shell 性能限制:复杂计算不如 Python/Go 快,但巡检场景够用

总的来说,如果你需要快速巡检 Linux 服务器、生成 HTML 报告、不想折腾依赖安装,Linux Auto Inspection 是很好的选择。零依赖、跨发行版、单文件设计,这些特点让它成为运维日常工作利器。

项目地址:https://github.com/Aidan-996/Linux_Auto_Inspection


一句话总结:Linux 服务器巡检还在手动敲命令?试试 Linux Auto Inspection,一条命令完成 17 大类检查,自动生成 HTML 报告,零依赖开箱即用。

最新文章

随机文章