📑 本文导航
简介
适用场景:服务器巡检、故障排查、日常维护
适用系统:CentOS / Rocky / AlmaLinux / Ubuntu 通用(包管理器命令已单独标注)

一、系统基础信息 & 开机巡检
目标:登录服务器后第一时间收集系统身份、时间、负载和登录用户信息。
| 命令 | 功能说明 | 备注 |
|---|---|---|
uname -a | 显示内核完整信息(版本、硬件架构) | |
hostname / hostnamectl | 查看/修改主机名 | hostnamectl 还可看系统版本、内核 |
cat /etc/os-release | 查看发行版信息(CentOS/Ubuntu 通用) | 比 lsb_release -a 更可靠 |
uptime | 运行时长、登录用户数、系统平均负载 (1/5/15分钟) | |
who / w | 查看当前登录用户及其终端、IP、执行命令 | |
last / lastlog | 登录历史 / 所有用户最后登录时间 | 排查异常登录 |
date / timedatectl | 查看系统时间 / 时区及 NTP 同步状态 | 时间不同步会导致认证失败 |
reboot / shutdown -r now | 重启系统 | shutdown -h now 为关机 |
二、CPU、内存、负载监控
目标:定位 CPU 瓶颈、内存泄漏,判断系统整体健康度。
| 命令 | 功能说明 | 常用示例 / 备注 |
|---|---|---|
top | 实时进程资源占用(CPU/内存) | 按 P 按 CPU 排序,按 M 按内存排序 |
htop | 增强版 top(彩色、鼠标操作) | 需安装 (yum/apt install htop) |
vmstat 1 | 系统整体状态(进程、内存、swap、IO、系统中断) | 每秒刷新,关注 si/so (swap换入换出) |
mpstat -P ALL 1 | 查看每个 CPU 核心的占用率 | 需安装 sysstat,定位单核热点 |
free -h | 内存及 swap 使用概况(人类可读) | 重点关注 available 可用内存 |
cat /proc/meminfo | 查看最详细的内存内核信息 | 排查内存参数时使用 |
lscpu | 查看 CPU 硬件信息(核数、架构、频率) | |
sar -u 1 10 / sar -r 1 | 历史/实时 CPU 统计 / 内存统计 | 强大的历史数据采集工具(需安装 sysstat) |
| 💡 负载参考:单核 Load < 1 正常;N 核服务器 Load 持续 > N 说明过载,需排查。 |
三、磁盘、文件系统与 I/O 排查
目标:防止磁盘写满、inode 耗尽,定位 I/O 读写缓慢的罪魁祸首。
| 命令 | 功能说明 | 常用示例 / 备注 |
|---|---|---|
df -h | 查看磁盘分区使用率(容量) | |
df -i | 查看 inode 使用率 | inode 满时无法创建文件/目录,服务会报错 |
du -sh * / du -sh /var/log/* | 统计当前目录 / 指定目录各文件/文件夹大小 | 定位大日志目录的利器 |
lsblk / fdisk -l / parted -l | 查看硬盘分区、块设备信息 | parted -l 支持查看 GPT 分区表 |
mount / umount | 查看已挂载分区 / 卸载文件系统 | |
blkid | 查看磁盘分区的 UUID(挂载时常用) | |
iotop | 实时查看各进程的磁盘读写速度(IOPS) | 需安装,定位哪个进程在狂写磁盘 |
iostat -x 1 | 查看磁盘 I/O 负载、吞吐量、队列长度 | 重点关注 %iowait(等待 I/O 的 CPU 占比) |
四、网络排查(运维高频)
目标:测试连通性、查看端口监听、追踪路由、抓包分析。
| 命令 | 功能说明 | 常用示例 / 备注 |
|---|---|---|
ip addr / ip route | 查看网卡 IP 地址 / 路由表 | 优先使用 ip 命令,替代旧版 ifconfig/route |
ss -tulnp | 查看所有监听端口及其对应进程 | 强烈推荐,替代 netstat,速度更快 |
ss -ant | 查看所有 TCP 连接状态 | 排查大量 TIME_WAIT 连接 |
ping -c 4 <IP> | 测试网络连通性与延迟 | |
traceroute <IP> / mtr <IP> | 路由追踪 / 动态路由+丢包率综合排查 | mtr 是网络质量问题排查神器 |
curl -v <URL> / wget <URL> | 测试 HTTP/HTTPS 接口连通性 | |
nc -zv <IP> <端口> | 测试指定端口的 TCP 连通性(端口敲门) | |
tcpdump -i any port 80 -nn | 抓取指定网卡/端口的网络包 | 排查协议交互问题 |
cat /etc/resolv.conf | 查看 DNS 配置 | |
dig <域名> / nslookup | 测试域名解析是否正常 |
五、进程与服务管理
目标:管理运行中的程序,优雅或强制停止异常进程。
| 命令 | 功能说明 | 常用示例 / 备注 |
|---|---|---|
ps aux / ps -ef | 列出所有进程(快照) | ps aux --sort=-%cpu 按 CPU 倒序 |
pstree | 以树状图显示进程父子关系 | 查看进程启动来源 |
kill <PID> / kill -9 <PID> | 正常终止 / 强制杀死进程 | -9 是最后手段,可能导致数据损坏或句柄残留 |
pkill <进程名> / pgrep <进程名> | 按进程名杀进程 / 查询进程 PID | 例:pkill nginx |
nice / renice | 调整进程优先级 | 让非关键任务让出 CPU 资源 |
systemctl status <服务> | 查看服务当前运行状态及最近日志 | |
systemctl start/stop/restart <服务> | 启/停/重启服务 | |
systemctl reload <服务> | 平滑重载服务配置(不中断连接) | 对 Nginx、HAProxy 等 Web 服务特别重要 |
systemctl enable/disable <服务> | 设置/取消服务开机自启 |
六、用户与权限管理
目标:增删用户、管理文件读写执行权限。
| 命令 | 功能说明 | 备注 |
|---|---|---|
useradd <用户名> / userdel -r <用户名> | 创建用户 / 删除用户及其家目录 | |
passwd <用户名> | 设置或修改用户密码 | |
groupadd <组名> | 创建用户组 | |
id <用户名> | 查看用户的 UID、GID 及所属组 | |
chmod 755 <文件> | 修改文件权限(读=4,写=2,执行=1) | 目录需要有执行权限才能进入 |
chown <用户>:<组> <文件> / chown -R | 修改文件属主 / 递归修改目录 | |
su - <用户名> / sudo -i | 切换用户环境 / 切换到 root |
七、文件操作、查找与文本处理
目标:日常文件增删改查、日志内容过滤。
| 命令 | 功能说明 | 常用示例 / 备注 |
|---|---|---|
ls -lh / mkdir -p / rm -rf | 列出文件、创建目录、删除目录 | rm -rf 前务必 pwd 确认路径 |
cp -r / mv / ln -s | 复制、移动/重命名、创建软链接 | |
find / -name "*.log" | 按文件名查找 | |
find /var -size +100M | 查找大于 100MB 的文件 | |
find . -type f -mtime +7 -delete | 删除 7 天前修改过的文件(清理日志) | |
grep "关键词" <文件> / grep -r "关键词" /etc/ | 在文件中搜索 / 递归目录搜索 | 常用 -i 忽略大小写,-A 5 显示后5行 |
less / more / head -n / tail -n | 分页查看大文件 / 查看文件头尾 | tail -f 实时跟踪;tail -F 支持日志轮转后继续 |
awk '{print $1}' <文件> | 提取文本的某一列 | 分析日志格式的利器 |
sed 's/old/new/g' <文件> | 文本替换(输出到屏幕) | 加 -i 直接修改文件 |
八、日志查看(故障排查核心)
目标:快速定位系统、服务、内核报错信息。
| 日志位置/命令 | 功能说明 | 备注 |
|---|---|---|
journalctl -u <服务名> | 查看 systemd 托管服务的日志 | 加 -f 实时跟踪,加 --since "1 hour ago" |
/var/log/messages | CentOS/Rocky 系统通用日志 | |
/var/log/syslog | Ubuntu 系统通用日志 | |
/var/log/secure | CentOS/Rocky 安全日志(SSH 登录、sudo) | |
/var/log/auth.log | Ubuntu 认证/安全日志 | |
dmesg -T | 查看内核环形缓冲区日志(带时间戳) | 查看硬件报错、OOM Killer(内存溢出杀进程) |
tail -f /var/log/nginx/access.log | 实时查看 Web 访问日志 | 结合 grep 过滤特定 URL |
九、软件包管理(按发行版区分)
目标:安装、卸载、更新软件包。
| 发行版 | 常用命令 | 说明 |
|---|---|---|
| CentOS/Rocky/AlmaLinux (RPM系) | yum install <包名> / yum remove | yum update 更新所有包 |
rpm -ivh <包名>.rpm | 安装本地 .rpm 文件 | |
| Ubuntu/Debian (DEB系) | apt update / apt install <包名> | apt upgrade 更新所有包 |
dpkg -i <包名>.deb | 安装本地 .deb 文件 |
十、压缩解压与同步备份
目标:文件打包传输、异地数据同步。
| 命令 | 功能说明 | 常用示例 |
|---|---|---|
tar -zcvf <归档名>.tar.gz <源> | 打包并压缩成 gzip 格式 | |
tar -zxvf <归档名>.tar.gz | 解压 gzip 格式 | 加 -C /目标目录 指定解压路径 |
zip -r <归档名>.zip <源> / unzip <归档名>.zip | zip 格式打包/解压 | 用于 Windows 兼容场景 |
rsync -avz <源> <目标> | 高效的文件同步(增量、支持远程) | 备份利器,如 rsync -avz /data/ root@ip:/backup/ |
scp <本地文件> <用户>@<IP>:<路径> | 基于 SSH 的远程拷贝 |
十一、定时任务
目标:周期性执行脚本(日志切割、数据备份)。
| 命令 | 功能说明 | 备注 |
|---|---|---|
crontab -l / crontab -e | 查看/编辑当前用户的定时任务 | |
crontab -r | 清空定时任务 | 谨慎操作 |
ls /etc/cron.* | 查看系统全局的定时任务目录(如 cron.daily) |
十二、系统安全与敏感检查
目标:快速发现异常账号、开放端口、历史命令。
| 命令 | 功能说明 | 备注 |
|---|---|---|
cat /etc/passwd | 查看系统所有账号 | |
grep "/bin/bash" /etc/passwd | 筛选拥有登录 Shell 的用户 | 排查是否存在异常管理员 |
ss -tulnp | 再次检查对外监听端口 | 确保没有未授权的服务暴露 |
history | 查看当前用户执行过的命令历史 | 排查是否有人执行了高危操作 |
chattr +i <文件> / chattr -i | 锁定文件(无法删除/修改)/ 解锁 | 保护关键配置文件 |
十三、一键组合巡检(运维脚本片段)
将最核心的指标打印出来,适合每天登录后第一件事:
bash
echo "========== 系统负载 & 运行时间 ==========" uptime echo "========== 内存使用情况 ==========" free -h echo "========== 磁盘分区使用率 ==========" df -h echo "========== 监听中的关键端口 ==========" ss -tulnp | grep -E ':(80|443|22|3306|6379)'
💡 运维避坑小贴士(总结)
-
命令的新旧替代:优先使用
ip代替ifconfig,ss代替netstat,journalctl管理日志。 3y4.net -
删除前确认:生产环境执行
rm -rf前,先用ls看一眼目录内容,或者先mv到/tmp暂存。 -
谨慎使用
kill -9:这会强制终止进程,可能导致文件句柄未释放、数据库事务异常。优先用kill -15或systemctl stop优雅停止。 -
定位 I/O 高:先用
iostat -x 1看整体,再用iotop定位具体进程。 -
网络问题:先
ping测通断,再mtr看路由和丢包,最后tcpdump抓包分析。 -
程序崩溃:首先看
dmesg -T末尾,确认是否被 OOM Killer 杀死。
这套融合后的清单基本覆盖了日常运维 90% 的场景。