前言
服务器运维是每个后端开发者的必备技能。不管你用的是云服务器还是物理机,掌握基本的运维命令和排查思路,能让你在遇到问题时快速定位并解决。
本文整理了 Linux 服务器日常运维中最常用的检查命令和技巧,适合收藏当速查手册使用。
一、服务器整体状态速查
一条命令看服务器整体情况:
uptime
输出示例:
10:38:01 up 1 day, 11:37, 0 users, load average: 0.41, 0.11, 0.03
up 1 day:服务器运行时间
load average:1分钟、5分钟、15分钟的平均负载
负载值一般不超过 CPU 核心数就算正常
二、CPU 检查
查看 CPU 信息
# CPU 型号和核心数
cat /proc/cpuinfo | grep "model name" | head -1
nproc
查看 CPU 使用率
# 实时监控
top
# 只看 CPU 占用前 10 的进程
top -bn1 | head -17
# 或者用 htop(更好看)
htop
查看负载
cat /proc/loadavg
负载解读:
load average < CPU 核心数:正常
load average = CPU 核心数:刚好满载
load average > CPU 核心数:过载,需要排查
三、内存检查
查看内存使用
free -h
输出示例:
total used free shared buff/cache available
Mem: 3.4Gi 1.8Gi 159Mi 2.0Mi 1.4Gi 1.3Gi
Swap: 4.0Gi 24Mi 4.0Gi
关键指标:
available:实际可用内存(比 free 更准确)
Swap 使用量:如果 Swap 使用很高,说明内存不够了
查看内存占用最多的进程
ps aux --sort=-%mem | head -10
四、磁盘检查
查看磁盘空间
df -h
注意: 使用率超过 80% 就要考虑清理了。
查看目录大小
# 查看当前目录下各文件夹大小
du -sh * | sort -rh | head -10
# 查看 /var/log 日志占用
du -sh /var/log/*
常见清理操作
# 清理系统日志
journalctl --vacuum-time=7d
# 清理 apt 缓存
apt clean
五、网络检查
查看网络连接
# 查看所有监听端口
ss -tlnp
# 查看所有连接
ss -tanp
# 统计连接数
ss -s
测试网络连通性
# ping 测试
ping -c 4 8.8.8.8
# DNS 解析测试
nslookup google.com
# 路由追踪
traceroute google.com
查看带宽使用
# 安装 iftop
apt install iftop
# 实时查看网卡流量
iftop -i eth0
六、进程管理
查看进程
# 查看所有进程
ps aux
# 按 CPU 排序
ps aux --sort=-%cpu | head -10
# 按内存排序
ps aux --sort=-%mem | head -10
# 查找特定进程
ps aux | grep nginx
杀死进程
# 优雅终止
kill PID
# 强制杀死
kill -9 PID
# 按名字杀
pkill nginx
七、日志排查
系统日志
# 查看系统日志
tail -f /var/log/syslog
# 查看内核日志
dmesg | tail -20
# 查看登录日志
last
应用日志
# Nginx 日志
tail -f /var/log/nginx/error.log
# systemd 服务日志
journalctl -u nginx -f
journalctl -u nginx --since "1 hour ago"
八、安全检查
查看登录失败记录
# 查看失败登录
grep "Failed password" /var/log/auth.log | tail -20
查看当前登录用户
who
w
检查防火墙
# Ubuntu
ufw status verbose
# CentOS
firewall-cmd --list-all
九、常用运维脚本
一键服务器巡检脚本
#!/bin/bash
echo "========== 服务器巡检 =========="
echo "时间: $(date)"
echo ""
echo "--- 系统信息 ---"
uptime
echo ""
echo "--- CPU 负载 ---"
cat /proc/loadavg
echo ""
echo "--- 内存使用 ---"
free -h
echo ""
echo "--- 磁盘使用 ---"
df -h | grep -E "^/dev"
echo ""
echo "--- 网络连接数 ---"
ss -s
echo ""
echo "--- 最近登录 ---"
last -5
echo ""
echo "========== 巡检完成 =========="
保存为 check.sh,加执行权限后运行:
chmod +x check.sh
./check.sh
十、速查表
总结
服务器运维的核心就是:监控、排查、清理、安全。
养成定期检查的习惯,很多问题在爆发前就能发现。建议把上面的巡检脚本加入 crontab,每天自动跑一次,有问题及时告警。
# 每天早上 9 点巡检一次
echo "0 9 * * * /path/to/check.sh >> /var/log/daily-check.log 2>&1" | crontab -
本文是「服务器运维笔记」系列第一篇,后续会持续更新更多实用运维技巧。