linux运维巡检脚本聚焦cpu、内存、磁盘、网络、服务、日志六类风险点,用top/vmstat/free/df等命令监控基础资源,以systemctl+curl/nc验证服务可用性,journalctl/dmesg/grep扫描近期错误,定时执行并输出带上下文的结构化摘要。

Linux 运维日常巡检脚本的核心是自动化检查关键系统状态,及时发现异常,避免小问题演变成故障。不追求大而全,重点覆盖 CPU、内存、磁盘、网络、服务和日志这六类高频风险点。
基础资源监控(CPU / 内存 / 磁盘)
用 top -b -n1 或 vmstat 1 2 获取瞬时负载;内存重点关注 free -h 中的 available 值,而非 free;磁盘用 df -hP 检查使用率,建议对 /、/var、/home 单独判断,超过 85% 触发告警。
- 避免只看
%CPU平均值,加一句uptime查 load average 是否持续高于 CPU 核数 - 内存不光看总量,
cat /proc/meminfo | grep -E "MemAvailable|SwapFree"更反映真实可用空间 - 磁盘检查后建议附加
ls -lt /var/log/ | head -5,快速确认日志是否在疯长
核心服务与端口连通性
巡检不是“服务是否在运行”,而是“服务是否可响应”。用 systemctl is-active 判断状态,再用 curl -I 或 nc -zv 验证监听端口的实际连通性。
- Web 服务:检查
curl -I http://127.0.0.1 --connect-timeout 3 -s | head -1返回 200/30x - 数据库:对 MySQL 执行
mysqladmin ping -u root -p'xxx' --silent &>/dev/null - SSH 和 NTP 等基础服务,用
ss -tlnp | grep :22确认监听且无异常绑定
异常日志与错误模式扫描
不翻完整日志,聚焦最近 10 分钟内含关键词的条目:ERR、ERROR、Failed、segmentation fault、OOM killed。
- 常用命令:
journalctl --since "10 minutes ago" | grep -iE "fail|err|kill|oom" - 补充检查
/var/log/messages和/var/log/secure中高频重复 IP 的登录失败记录 - 对
dmesg -T | tail -30做简单过滤,捕获硬件或内核级异常(如磁盘 I/O timeout)
定时执行与结果输出
脚本结尾统一输出简明摘要,保存到日志并支持邮件或钉钉推送。不要只写“OK”,要带上下文:
- 示例输出:
[OK] Load: 0.42, Mem: 62% (3.1G/5.0G), Disk/: 73%, SSH/HTTP/NTP: OK, Errors: 0 - 用
date >> /var/log/check_daily.log开头,每次执行留痕,方便回溯 - 配合 crontab 每天 6:30 执行:
30 6 * * * /opt/scripts/check.sh >> /var/log/check_daily.log 2>&1
一个实用的巡检脚本不需要上百行,50 行以内能覆盖 80% 日常风险。关键是每次执行都给出可读、可比、可追查的结果,而不是“跑完了就完事”。










