Linux服务器每天需要检查的核心内容可以概括为五个字:磁盘、内存、日志、进程、安全,这五项构成日常巡检的底线,全部完成只需半小时,但能规避绝大多数突发故障。
很多运维同行都经历过类似的场景:客户凌晨打电话说网站打不开,你登录服务器一看, 分区满了,apache 进程早已被杀掉,这种问题如果每天早上花十分钟看一眼,根本不会发生,下面结合我日常的巡检习惯,把具体看什么、怎么看、阈值怎么定,完整梳理一遍。
linux服务器日常巡检命令:磁盘与文件系统检查
磁盘问题在所有服务器故障中占比最高,行业共识认为,超过一半的非硬件故障源于磁盘空间耗尽或inode耗尽,每天登录服务器后,第一件事就是执行检查命令。
磁盘容量与inode双维度排查
df -h 是每个运维人员烂熟于心的命令,但只看容量远远不够,很多事故的根源是inode耗尽文件数量跑满了,但df -h看着还有剩余空间。
建议每次巡检同时执行这两条命令:
df -h:查看各分区容量使用率,重点关注 使用率超过80% 的分区df -i:查看inode使用率,同样以80%为警戒线
所有服务器都应该设置独立的 /home 或 /data 分区,如果哪天日志把根分区写满了,至少系统还能通过ssh登录,这能给你留下宝贵的自救窗口。
定位大文件与异常增长文件
发现某个分区占用率异常,需要快速定位是哪些文件长大的,按经验排序,嫌疑最大的通常是这三类:
- 应用日志:
/var/log、/data/logs下的.log文件 - 临时文件:
/tmp下未清理的临时包、旧文件 - 系统转储:
/var/crash目录下的core文件
定位命令建议组合使用:
du -sh /data/ | sort -rh | head -10
find /data -type f -size +500M -exec ls -lh {} ;
第一行命令列出 /data 下各子目录的大小排行,第二行找出所有大于500M的文件,发现异常文件后,先确认是什么进程在写入,再决定能否清理。
日志拆分策略:防止单个文件无限增长
很多服务器的问题源于单个日志文件巨大,导致grep查询卡顿、磁盘被迅速占满,主流做法是配置logrotate按天或按大小切割:
/deploy/app/logs/.log {
daily
rotate 7
missingok
compress
copytruncate
}
这段配置表示日志每天切割一次,保留7份,压缩历史文件,如果你的应用没有做日志拆分,建议尽快补上,这是防止磁盘被打满的第一道防线。
linux服务器cpu内存负载分析:性能瓶颈快速定位
服务器响应变慢、用户投诉卡顿,通常和CPU或内存负载异常有关,日常巡检不必每次都做性能压测,但需要掌握快速定位瓶颈的方法。
三个核心命令看系统整体健康度
uptime:查看1分钟、5分钟、15分钟的平均负载,如果1分钟负载持续高于CPU核数,说明系统近期处理压力大top:按P键将进程按CPU使用率排序,按键按内存排序,快速定位耗资源的大户
M
vmstat 1 3:每秒采集一次,连续三次,观察r列(运行队列)和si/so列(交换分区读写)
使用top时,有一个容易忽略的细节:需要按 Shift + P 查看纯CPU占用,因为默认按起来后可能和你看到的上一个状态不同,大多数情况下,排名前五的进程已经足够说明问题。
内存使用:关注available而非free
Linux系统的内存机制和Windows不同,free 命令显示的 free 列很小不代表内存不足,因为系统会把空闲内存拿来做缓存,需要运行时自动释放。
真正需要看的是:
free -h
重点看 available 列,只有当 available持续低于总内存的20%,且同时发生明显的swap读写时,才需要警惕内存压力。
swap使用率与内存泄漏的关系
内存泄漏在Java应用中比较常见,如果进程持续运行,内存占用缓慢增长,最终吃光所有可用内存,系统就会进入swap,巡检时注意:
free -h中swap的used列是否持续增长ps aux --sort=-%mem | head -5中Java进程的RES是否持续走高
如果确认存在内存泄漏,常见处理路径是:先重启应用临时恢复,然后通过jmap导出堆内存快照,用MAT工具分析对象引用链,这条处理路径是业内专家较为推荐的标准做法。
linux服务器安全日志怎么看:登录审计与入侵排查
安全巡检是日常维护中最容易偷懒、但绝对不能省略的环节,暴力破解、异常登录、未授权操作,每天都要过一遍。
检查登录记录的关键命令
- 成功登录记录:
last或last -20 - 所有用户最近登录:
lastlog - 失败认证记录:
grep "Failed" /var/log/secure | tail -20
每次巡检重点看三件事:是否有陌生IP地址成功登录、是否有非工作时间段的登录行为、root账户的登录来源是否和你的固定IP一致。
暴力破解的识别与封禁策略
在公网服务器上,每天的SSH暴力尝试可能成百上千次,判断标准不是“有没有被尝试”,而是“有没有被尝试成功”,按以下步骤排查:
# 查看最近1小时失败登录超过10次的IP
grep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -rn
# 对可疑IP进行封禁
iptables -A INPUT -s 1.2.3.4 -j DROP
对于有固定办公IP的场景,最直接的办法是在 /etc/hosts.allow 和 /etc/hosts.deny 里限定SSH的访问来源,如果办公IP是动态变化的,建议改用密钥登录并关闭密码认证,这一步能将暴力破解风险降到极低水平。
敏感文件与隐藏用户的监控
- 检查
/etc/passwd是否有新增用户:awk -F: '$3==0{print $1}' /etc/passwd列出所有UID为0的用户 - 检查
/etc/crontab和/var/spool/cron/下的定时任务是否有非预期条目 - 检查
/etc/ld.so.preload是否存在(正常系统通常没有这个文件,出现即怀疑rootkit)

linux服务器日志查询与分析:应用故障早知道
系统日志和应用日志是发现问题的哨兵,与其等用户反馈故障,不如每天从日志里提前判断风险。
系统级别的三个必看日志文件
不同的Linux发行版日志路径略有差异,以CentOS/RHEL系为例,重点关注:
| 日志文件 | 重点关注 | |
|---|---|---|
| /var/log/messages | 内核及系统服务通用日志 | OOM killer、硬盘IO错误、服务崩溃 |
| /var/log/secure | 认证与安全日志 | SSH暴力破解、sudo使用记录 |
| /var/log/cron | 定时任务执行日志 | 任务是否正常运行、是否报错 |
对于Ubuntu/Debian系,将 messages 替换为 syslog,secure 对应 auth.log。
日志错误级别的三级分流策略
如果每次巡检把大量日志全部看一遍,不仅耗时而且容易疲劳,更合理的做法是分级筛选:
- 紧急故障级别(ERR/CRIT):封装shell脚本,通过邮件或企业微信群机器人推送,比如
java.lang.OutOfMemoryError、No space left on device这类,需要立即处理 - 排查储备级别(WARN):记录到单独文件,按周滚动查看,用于判断趋势
- 日常运维级别(INFO):默认不主动看,遇到问题按时间点反查
一次典型的日志排查实操示例
假设上午业务方反馈订单接口超时,按时间线排查的推荐顺序是:
# 1. 查看当时时间点的应用错误日志 grep "2026-06-10 10:2" /data/app/logs/order-service.log | grep -i error # 2. 查看数据库连接数是否打满 mysql -uroot -p -e "show processlist;" # 3. 查看当时系统负载是否有短时尖峰 sar -q -f /var/log/sa/sa10 -s 10:00:00 -e 10:30:00
这个流程的核心逻辑是:先确认应用层报什么错,再排查依赖服务的状态,最后验证系统资源层面是否出现了短时瓶颈,按此顺序能快速缩小问题范围。
linux服务器运维每天看什么:定时任务与备份验证
定时任务和备份策略是日常运维中需要专注的关键领域,它们能在数据丢失时提供最后的防护。
定时任务检查:排除重复调度与失败任务
多数应用的定时任务会落在凌晨执行,所以在早上巡检时,重点查看昨晚的cron执行情况:
grep "$(date +%F)" /var/log/cron
需要注意的常见情况有两种:
- 脚本执行时间与预期不符:比如备份任务和日志清理任务重叠,导致IO压力集中
- 多台服务器使用同一个cron时间点:数据库备份任务如果同时启动,可能造成主库连接数突增,解决办法是把不同服务器的任务错峰15分钟左右
备份的可还原性检查
很多团队只备份不验证,等到真正需要恢复时才发现备份文件损坏,每天巡检时,对备份做两项检查:
- 检查备份文件大小:对比前后两天的文件大小变化,如果某天突然变成0字节或明显变小,基本可以断定备份任务出了异常
- 抽样做恢复测试:不是每天全量恢复,而是取较小的数据库或配置文件做一次实际恢复演练,比如每天将昨天的数据库备份恢复到临时实例,验证表结构和数据行数是否正常

监听端口与关键进程存活状态
进程死掉但服务器没宕机的情况并不少见,一句命令检查所有关键端口:
ss -tlnp | grep -E ':80|:443|:3306|:6379'
配合检查进程PID是否存在:
pidof nginx && pidof mysqld && pidof java
任何一个命令返回非零值,说明对应服务已经退出,需要立即查看 /var/log/messages 或对应应用日志确认退出原因。
linux服务器巡检内容有哪些:从手工到脚本的进阶路径
如果只有三五台服务器,手工登录执行命令完全可以接受,但服务器数量达到几十台以上,手工巡检的效率就太低了,推荐按以下路径逐步自动化:
第一阶段:单机巡检脚本
把上述命令整合成一个shell脚本,输出当前服务器的IP地址、磁盘使用率、内存状态、登录失败的IP及次数,在脚本中设置阈值,超过阈值时自动用curl调用微信机器人或钉钉机器人发送告警。
第二阶段:集中监控工具接入
- Prometheus + node_exporter:采集CPU、内存、磁盘、网络等基础指标,配合
alertmanager配置告警规则 - Netdata:轻量级实时监控,界面直观,适合中小规模服务器
- Zabbix:传统监控方案,适合已有运维规范且需要自定义告警的场景
梳理清楚每天需要看什么内容之后,要明确选择哪种监控方案,如果是服务器linux运维,建议优先从Prometheus方案入手,因为它对二进制指标的采集能力与后续适配能力都很灵活。
Q&A:linux服务器日常巡检常见问题解答
Q:linux服务器每天需要看什么才能避免突发故障?
A:核心是围绕磁盘容量与inode、内存与平均负载、安全登录日志、应用日志错误、定时任务与备份状态五个维度展开,具体包括执行df -h观察分区使用率是否超过80%free -h确认available内存是否充裕、last -20检查是否存在异常登录IP、用grep ERROR筛选应用日志中的错误级别信息。
Q:服务器数量多的情况下,手工登录检查效率太低怎么办?
A:先通过shell脚本将检查步骤自动化,统一输出每台服务器的健康状态,并结合企业微信群机器人发送每日巡检报告,后续随着规模增长,逐步引入Prometheus监控体系,以标准化方式覆盖所有常见巡检项的采集与告警。
Q:怎么判断磁盘告警是临时增长还是持续性写入?
A:连续观察三天同一时间点的磁盘使用率变化,如果每天固定时段增长、其他时段平稳,通常是定时任务产生大量中间数据或日志拆分策略未生效;如果全天持续增长且无下降趋势,多为应用写入了循环日志或产生了数据库binlog积压,排查时先用lsof | grep deleted定位已删除但仍占用空间的文件句柄,再用lsof +L1找出残留的大文件。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/908903.html

