在Ubuntu服务器运维中,命令行才是最可靠的工具。这份清单聚焦高频场景和现代命令,帮助你在故障时快速定位问题,减少排查时间。内容按工作流程组织,只保留最实用部分,适合日常参考和应急使用。
1. 快速判断服务器当前状态(登录后前5秒必做)
登录服务器后,首先需要确认环境和资源状态,避免误操作。
- hostnamectl:显示主机名、系统版本、内核、虚拟化类型等关键信息,是现代Ubuntu最全面的系统概览命令。
- uptime 或 w:查看系统运行时长、在线用户数以及1/5/15分钟负载平均值,帮助快速判断服务器是否处于高负载状态。
- free -h:以人类可读格式显示内存使用情况,重点关注available列,这是真正可用于新进程的内存。
- df -h:检查所有挂载点的磁盘空间使用率,特别是根分区、/var和数据目录是否接近满载。
- top(或提前安装htop/btop):实时查看进程资源占用,按M排序内存、P排序CPU,能立即发现异常高占用进程。
这五条命令组合使用,几乎能覆盖80%的“服务器突然变慢”初步诊断需求。
2. 软件包管理(APT体系)
Ubuntu的软件管理依赖APT体系,apt命令已成为主流。
标准操作流程:
- sudo apt update:刷新软件源索引,确保获取最新包信息。
- sudo apt upgrade:升级所有已安装软件包,-y参数可跳过确认。
- sudo apt full-upgrade:处理涉及依赖变更或内核更新的复杂升级场景。
- sudo apt install 包名:安装指定软件,支持同时安装多个包。
- sudo apt remove –purge 包名 && sudo apt autoremove:彻底删除软件并清理无用依赖。
其他常用功能:
- apt search 关键词:搜索可用软件包。
- apt show 包名:查看包的版本、依赖、大小等详细信息。
- apt list –installed:列出所有已安装包,更直观。
- sudo apt install -f:修复损坏的依赖关系。
- sudo needrestart(需安装):升级后检查哪些服务需要重启。
3. 服务与进程管理(systemd时代)
systemd已成为Ubuntu服务管理的标准。
- systemctl status 服务名:查看服务运行状态、PID和最近日志。
- systemctl start/stop/restart/reload 服务名:基本控制操作,reload适用于仅重载配置的场景。
- systemctl enable/disable 服务名:设置或取消开机自启。
- journalctl -u 服务名 -n 200:查看服务最近200行日志。
- journalctl -u 服务名 -f:实时跟随日志输出。
- journalctl -u 服务名 –since “2 hours ago”:按时间段查看日志。
- ss -tulnp:列出所有监听端口及其对应进程,已完全取代netstat。
- pkill -f 特征 或 killall 进程名:快速终止匹配进程。
4. 网络诊断与端口排查
网络问题是运维中最常见的故障点。
- ip a:简洁查看所有网卡IP和状态。
- ip route:显示路由表和默认网关。
- ping -c 4 目标 或 mtr 目标:测试连通性和路径延迟,mtr更适合观察波动。
- dig +short 域名:快速查询DNS解析结果。
- curl -I 网址:仅获取HTTP响应头,判断站点是否正常。
- sudo ufw status verbose:查看简易防火墙规则。
- sudo ufw allow 端口/tcp 或 sudo ufw allow from 特定IP:快速开放端口或限制来源。
5. 磁盘、文件、空间管理
磁盘空间耗尽是导致服务异常的常见原因。
- df -h 和 df -i:分别查看空间和inode使用情况,inode满同样会导致“无法写入”。
- du -sh /* | sort -hr:找出根目录下占用最大的目录。
- find / -type f -size +1G 2>/dev/null:定位超大文件。
- find /var/log -type f -mtime +90:查找超过90天的旧日志文件。
常规清理措施:
- sudo apt clean:清除下载的deb包缓存。
- sudo journalctl –vacuum-time=90d 或 –vacuum-size=5G:限制systemd日志体积。
- 谨慎清理 /tmp 目录(建议重启前执行)。
6. 日志查看与定位
日志是排查问题的核心依据。
- journalctl -xe:查看最近的关键错误事件。
- journalctl –priority=3:仅显示error及以上级别日志。
- tail -n 200 -f /var/log/应用日志:传统方式跟踪特定日志文件。
- grep -i “error|fail|denied” /var/log/auth.log:快速筛选认证相关异常。
- last:查看最近成功登录记录。
- grep “Failed password” /var/log/auth.log | tail -20:检查暴力破解尝试。
7. 用户与安全相关
- w:查看当前在线用户及其操作。
- adduser 用户名 → usermod -aG sudo 用户名 → passwd 用户名:标准创建管理员用户流程。
- 通过 /etc/sudoers.d/ 创建独立文件配置sudo权限,更安全可控。
8. 性能历史数据(sysstat套件)
安装sysstat后,使用sar查看历史指标:
- sar -u:CPU历史使用率。
- sar -r:内存历史使用情况。
- sar -d:磁盘IO历史性能。
- sar -n DEV:网卡流量历史统计。
9. 快速备份小技巧
- tar -zcf backup-$(date +%F).tar.gz /目标目录:打包压缩。
- rsync -avz –delete 来源/ 目标:增量同步并保持一致。
- mysqldump –single-transaction 库名 > backup.sql:数据库逻辑备份。
总结:30秒黄金排查链
面对突发故障,按以下顺序执行:
- uptime / w → 判断负载和异常用户
- free -h + df -h → 检查资源是否耗尽
- top → 定位高占用进程
- systemctl status 相关服务
- journalctl -u 服务 -n 100 -xe → 查看错误日志
熟练掌握这些命令和思路,能大幅提升故障响应速度。希望这份清单成为你的日常参考工具。