前言

服务器运维是每个后端开发者的必备技能。不管你用的是云服务器还是物理机,掌握基本的运维命令和排查思路,能让你在遇到问题时快速定位并解决。

本文整理了 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

十、速查表

场景

命令

查看 CPU 负载

uptime

查看内存

free -h

查看磁盘

df -h

查看端口

ss -tlnp

查看进程

ps aux

实时监控

top / htop

查看日志

tail -f /var/log/syslog

测试网络

ping / curl

查看网卡

ip addr

防火墙

ufw status


总结

服务器运维的核心就是:监控、排查、清理、安全

养成定期检查的习惯,很多问题在爆发前就能发现。建议把上面的巡检脚本加入 crontab,每天自动跑一次,有问题及时告警。

# 每天早上 9 点巡检一次
echo "0 9 * * * /path/to/check.sh >> /var/log/daily-check.log 2>&1" | crontab -

本文是「服务器运维笔记」系列第一篇,后续会持续更新更多实用运维技巧。