从零开始学服务器运维:每天必做的5项健康检查
前置准备
开始之前,请确认以下条件已满足:
- 一台运行 Linux(CentOS / Ubuntu / Debian 均可)的服务器,已开启 SSH 远程登录。
- 本地电脑安装好 SSH 客户端:Windows 推荐 PuTTY 或系统自带 PowerShell,Mac / Linux 直接用终端。
- 拥有服务器的 root 密码或 sudo 权限(普通用户使用
sudo时需输入密码)。 - 服务器已正常联网,确保命令能执行。
小提示:如果你使用宝塔面板,也可通过面板的“终端”功能直接输入命令,效果一样。
分步操作
第一步:查看系统运行时长与负载(uptime)
uptime输出示例:
10:23:45 up 12 days, 3:15, 3 users, load average: 0.08, 0.12, 0.15up 12 days表示服务器已连续运行12天。load average三个数值分别代表过去1分钟、5分钟、15分钟的平均负载。负载值接近CPU核心数时表示压力较大(例如2核CPU,负载接近2需留意)。
第二步:检查内存使用情况(free -h)
free -h输出示例:
total used free shared buff/cache available
Mem: 7.7G 1.2G 5.0G 120M 1.5G 6.2G
Swap: 2.0G 0B 2.0G- 重点看
available列,“可用内存”越接近0说明内存越紧张。 Swap如果使用较多(比如超过几百MB),建议排查内存泄漏或考虑升级内存。
第三步:检查磁盘空间(df -h)
df -h输出示例:
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 15G 25G 38% /- 分区根目录
/的使用率达到 90%以上 时容易导致服务异常,需及时清理或扩容。 - 重点关注
/、/var、/home等常用目录。
第四步:查看进程资源消耗(top)
top进入交互界面后,按 1 可以查看每个CPU核心的负载,按 q 退出。
重点看:
%Cpu(s):id 列表示空闲百分比,id 值长期低于20%说明CPU吃紧。RES列:进程占用的物理内存(单位:KB)。找占用高的 PID 做进一步分析。
第五步:查看系统日志(journalctl 或 tail)
# 查看最近10条系统日志
journalctl -xe -n 10
或者实时追踪关键日志文件
tail -f /var/log/syslog # Ubuntu
tail -f /var/log/messages # CentOS
- 日志中频繁出现
error、failed、out of memory等关键词时,说明系统存在异常。 - 按
Ctrl+C停止实时追踪。
避坑指南
- 命令找不到? 很多精简版镜像未安装
top、free,可运行:
yum install procps-ng -y # CentOS
apt install procps -y # Ubuntu- df -h 显示不准? 如果使用 ZFS 或 Btrfs 文件系统,建议改用
df -Th查看文件系统类型。 - top 显示乱码?
需要在 SSH 客户端设置 UTF-8 编码,或使用htop(更美观,需额外安装)。
- 日志太大怎么办? 定期使用
logrotate自动压缩轮转,或手动清理:
sudo journalctl --vacuum-size=100M # 保留最近100MB日志高频问题解答
Q1:负载高但 CPU 空闲是为什么?
可能原因:磁盘 I/O 瓶颈(iowait 高)或大量中断。可用 iostat -x 1 观察磁盘响应时间。
Q2:内存显示 used 很少但 available 也很少?
Linux 会尽量使用空闲内存做缓存(buff/cache),这部分在需要时可释放,所以主要看 available。
Q3:没有 root 密码,只有普通用户怎么办?
在每个命令前加 sudo(如 sudo uptime),前提是该用户在 sudoers 组中。
Q4:这些命令能自动运行并发送报告吗?
新手可以先手动练习一周,之后可以使用 crontab 定时执行脚本,如每天早8点将结果邮件发送给自己。
效果验证
执行完上述5步后,进入 top 界面,按 c 可看完整命令行,确认系统负载、内存、磁盘三个核心指标都在正常范围。
连续观察3天,每天同一时间记录 load average 的1分钟值,如果波动不超过0.5且磁盘使用率未增长,说明你的服务器运维检查流程已正常运转。
如果你正在学习服务器运维,建议把这5条命令保存为一个脚本 ~/health_check.sh,每日执行一次。
遇到异常时优先回看本文的避坑和高频问题部分,绝大多数基础故障都能快速定位。