
你每天登录服务器,第一件事做什么?
大部分人什么都不做。等出问题了,才上去看。那时候看已经晚了。磁盘快满了你不知道,证书要过期了你不知道,某个服务挂了半小时你才知道。
每天花10分钟巡检,能避免90%的突发故障。不是你有超能力,是你比故障早一步发现问题。
今天给你一份每日检查清单,照着做,10分钟搞定。
先看一个数据
某云厂商统计,超过60%的服务器故障在爆发前24-48小时就有征兆。磁盘使用率从60%涨到90%,用了两周。内存从50%涨到80%,用了一周。慢查询从每天100条涨到1000条,用了三天。
不看监控,就看不到这些曲线。每天都看,你就有了预警能力。
第1分钟:看负载和CPU
bash
uptime
输出:load average: 0.5, 0.8, 0.6
三个数字分别是1分钟、5分钟、15分钟的平均负载。负载不应该持续超过CPU核心数。4核CPU,负载持续大于4,说明忙不过来了。
bash
top -bn1 | head -5
看CPU使用率。%us是用户态,%sy是内核态,%id是空闲。如果%id经常低于20%,CPU紧张。如果%wa(I/O等待)持续超过10%,磁盘可能是瓶颈。
什么情况要警惕:负载比昨天同一时间高30%以上;CPU空闲低于20%且持续;某个陌生进程占满CPU(可能被挖矿了)。
第2分钟:看内存
bash
free -h
看available那一列,这是真正可用的内存。available长期低于总内存的20%,说明内存紧张。Swap used长期大于0,说明内存不够用了,正在用磁盘当内存,速度会暴跌。
什么情况要警惕:可用内存低于20%;Swap used持续增长;某个进程内存泄漏(一天比一天高)。
第3分钟:看磁盘
bash
df -h
看Use%列。超过80%要关注,超过90%要马上处理。哪个分区满了?
bash
du -sh /var/log/
日志目录通常是磁盘爆满的元凶。
什么情况要警惕:磁盘使用率一周涨了10%以上;某个分区突然满了;/var/log超过10GB。
第4分钟:看备份
bash
ls -lh /backup/ | tail -5
看最近的备份文件:昨天的备份有没有生成?文件大小是否正常?太小的备份可能失败了。
重点:至少一个月做一次恢复测试。只检查备份存在还不够,要确认备份能恢复。真出事的时候你不想赌。
第5分钟:看日志
bash
tail -50 /var/log/syslog | grep -i error tail -50 /var/log/nginx/error.log | grep -i error journalctl -xe -n 50 | grep -i error
不用看完整个日志,只看最后50行里的错误。新出现的错误要留意。一直存在的旧错误,如果没影响业务,可以暂时忽略。
什么情况要警惕:出现了没见过的错误;同一个错误每小时出现几十次。
第6-7分钟:看监控面板(如果有)
如果你装了Netdata、Uptime Kuma或其他监控,花2分钟扫一眼:
- CPU、内存、磁盘的历史曲线
- 过去24小时有没有异常峰值
- 监控告警列表有没有未处理的
没有装监控,装一个。10分钟的事,能省每天10分钟的手工检查。
第8分钟:看定时任务
bash
crontab -l
昨天的定时任务执行了吗?检查日志:
bash
grep CRON /var/log/syslog | tail -20
什么情况要警惕:备份任务没执行;日志清理任务报错。
第9分钟:看安全更新
bash
# Ubuntu/Debian apt list --upgradable | grep -i security # CentOS/RHEL yum check-update --security
有安全更新,安排今晚或明晚重启更新。不要在生产高峰期更新,也不要拖太久。
第10分钟:记录异常
把发现的问题记下来,分类处理:
- 今天要修的:磁盘满了、服务挂了、备份失败
- 这周要安排:安全更新、升级配置
- 下个月再看:磁盘趋势、慢查询增长
记不住就建一个简单的文档或表格。每天记录,周末统一处理。
一份简化的每日检查脚本
把上面的命令写成一个脚本/root/daily_check.sh:
bash
#!/bin/bash echo "=== 系统负载 ===" uptime echo -e "\n=== CPU使用率 ===" top -bn1 | head -5 echo -e "\n=== 内存使用 ===" free -h echo -e "\n=== 磁盘使用 ===" df -h | grep -v tmpfs echo -e "\n=== 最近错误日志 ===" tail -20 /var/log/syslog | grep -i error echo -e "\n=== 备份检查 ===" ls -lh /backup/ | tail -3 echo -e "\n=== 定时任务 ===" grep CRON /var/log/syslog | tail -5
每天执行一次./daily_check.sh,一键输出所有检查结果。把输出保存到文件或发给自己的邮箱。
真实案例
一个创业公司的运维,每天花15分钟执行这份清单。某天他发现磁盘使用率从65%跳到了82%,查了一下,是某个服务的日志级别被改成了DEBUG,一天写了50GB日志。改回INFO,磁盘恢复。
如果没有每天检查,再跑几天,磁盘就会满,网站就会挂。
他说:“每天10分钟,省了半夜爬起来救火。”
最后一句
巡检不是找事做,是提前排除隐患。
磁盘满了再清理,是救火。每天看它涨了多少,是防火。好运维不是会救火,是让火不会烧起来。
今天开始,每天花10分钟走一遍这份清单。一个月后,你会发现自己的服务器从来没出过大问题。
不是运气好,是你看到了它要生病之前的症状。




