Linux Shell 自动巡检脚本的核心目标是用轻量、可靠、可维护的方式,定期检查系统关键状态,并及时反馈异常。不依赖复杂框架,纯 Bash 即可覆盖 CPU、内存、磁盘、服务、日志等高频问题点。
巡检项设计:聚焦真实风险点
避免“为巡而巡”,优先纳入以下易出问题且影响面广的指标:
CPU 负载
:检查
的 15 分钟负载是否持续 > CPU 核数 × 1.5
内存使用率
:排除缓存(
中的
值),低于 5% 触发告警
根分区使用率
:
≥ 90% 即预警
关键服务状态
:如
、
或自定义服务,用
判断
异常登录记录
:检查
最近 10 分钟是否有
突增(可用
)
脚本结构:分层清晰,便于定位
一个实用的巡检脚本建议按功能拆分为三段:
配置区
:定义告警阈值、收件人邮箱、日志路径、需检查的服务列表(数组形式),方便统一维护
检测函数区
:每个巡检项封装为独立函数(如
、
),返回 0(正常)或 1(异常)
执行与汇总区
:调用各函数,收集结果;异常时写入日志并触发邮件(可用
)
自动化调度与日志留存
用
实现定时运行,例如每 30 分钟一次:
通义灵码 Linux版
通义灵码 Linux版是阿里云推出的一款AI智能编码助手,专为Linux开发者设计。它支持在Linux操作系统下的JetBrains IDEs、Visual Studio Code等主流集成开发环境中运行。该工具基于通义大模型,提供代码智能生成、实时续写、单元测试生成、代码优化以及研发智能问答等功能,旨在帮助Linux用户在编码过程中提升效率。
下载
同时在脚本中加入日志记录逻辑:
每次运行生成带时间戳的简要日志(如
)
异常详情追加到统一告警日志(
),保留最近 7 天
日志行首标注主机名和时间,便于多机汇总分析
轻量告警与人工介入衔接
不追求实时推送,先确保信息可查、可追溯:
默认只在发现异常时发邮件,正文含主机名、时间、具体哪项失败及原始命令输出片段
提供一键诊断入口:脚本末尾输出类似
支持传参模式(如
)用于临时专项检查,提升排障效率
uptimefree -mavailabledf -h / | awk 'NR==2 {print $5}' | sed 's/%//'sshdnginxsystemctl is-active --quiet 服务名/var/log/secureFailed passwordawk '/Failed password/ && $0 ~ /$(date -d "10 minutes ago" +"%b %d %H:%M")/ {count++} END{print count+0}'check_disk()check_sshd()mail -s "告警" admin@example.com < /tmp/health_alert.logcron*/30 * * * * /opt/scripts/health_check.sh > /dev/null 2>&1/var/log/health/health_$(date +\%Y\%m\%d_\%H\%M).log/var/log/health/alert.log【快速复现】运行 /opt/scripts/health_check.sh --debug 可查看详细过程--disk-only