31 - 附录与维护建议
快速参考命令速查表
| 类别 | 常用命令 | 说明 |
|---|---|---|
| 系统信息 | hostnamectl / lsb_release -a / uname -r |
主机名、发行版、内核版本 |
| 软件包管理 | apt update && apt full-upgrade -y && apt autoremove |
更新 + 升级 + 清理 |
| 服务管理 | systemctl status/enable/start/restart/stop <服务> |
systemd 服务控制 |
| 网络诊断 | ip -br addr / ss -tuln / ping -c4 / curl -I |
IP、端口、连通性 |
| 日志查看 | journalctl -u <服务> -f / journalctl -b -p err |
实时跟踪、错误日志 |
| 磁盘存储 | lsblk -f / df -hT / du -sh /var/* / lvs |
分区、LVM、占用情况 |
| 安全状态 | ufw status verbose / nft list ruleset / fail2ban-client status sshd |
防火墙、fail2ban |
| 容器虚拟化 | docker ps -a / podman ps -a / lxc-list / virsh list --all |
容器与虚拟机状态 |
| AppArmor | aa-status / journalctl \| grep "apparmor.*DENIED" |
MAC 状态、拒绝日志 |
| 备份验证 | borg list <仓库> / restic snapshots |
备份归档列表 |
生产环境维护检查清单
建议每周执行:
- 系统更新状态(
apt list --upgradable) - 关键服务运行状态(
systemctl --failed) - 磁盘空间(
df -h/df -i,inode 耗尽同样会导致写入失败) - 日志磁盘占用(
journalctl --disk-usage/du -sh /var/log/) - fail2ban 封禁记录(
fail2ban-client status sshd)
建议每月执行:
- 防火墙规则审查(
ufw status verbose或nft list ruleset) - 备份可恢复性验证(从备份仓库恢复文件到临时目录,验证内容完整性)
- LVM 快照空间健康(
lvs -o lv_name,lv_size,data_percent) - 开放端口扫描(
nmap -sV 192.168.1.100,确认无意外开放端口) - TLS 证书到期检查(
certbot certificates或openssl x509 -in cert.pem -noout -dates) - 云 CLI 凭证有效性与轮换计划
常见问题排查路径
| 问题描述 | 第一步 | 第二步 | 最终手段 |
|---|---|---|---|
| SSH 无法连接 | ping 192.168.1.100 + ss -tuln \| grep 2222 |
tail /var/log/auth.log / fail2ban-client status sshd |
VMware 控制台直接登录 |
| 服务启动失败 | systemctl status <服务> |
journalctl -u <服务> -xe |
AppArmor 日志 / strace |
| 磁盘写满 | df -h / df -i |
du -sh /var/log/* /tmp/* /backup/* |
清理日志 / 删除旧备份 |
| 网络不通 | ip addr show / ip route |
ping 192.168.1.1(网关)/ tcpdump -i ens33 |
检查 VMware 网络模式 |
| 容器无法启动 | docker logs <容器> / podman logs <容器> |
docker inspect <容器> |
AppArmor 拒绝日志 / 重建镜像 |
| 升级后兼容性问题 | apt list --installed \| grep <包名> |
journalctl -b -p err |
apt install --reinstall <包名> |
| AppArmor 阻断服务 | aa-status / journalctl \| grep DENIED |
aa-complain <程序> 切换模式收集日志 |
补充策略规则后 aa-enforce |
长期运维建议
文档化
将所有服务器配置、变更记录、应急预案纳入 Git 仓库管理,密码使用 ansible-vault 或 GPG 加密后再提交。文档格式统一使用 Markdown,维护在 GitHub Wiki 或同仓库 docs/ 目录中。
监控与告警
基础监控方向(按复杂度从低到高):
| 方案 | 组件 | 适用规模 |
|---|---|---|
| 轻量方案 | Prometheus + Node Exporter + Alertmanager | 5 台以下 |
| 日志聚合 | Grafana + Loki + Promtail | 日志量中等 |
| 完整可观测 | ELK Stack(Elasticsearch + Logstash + Kibana) | 大规模 |
| 告警渠道 | 邮件 / Telegram Bot / 企业微信 Webhook | 按需 |
定期演练
每月至少执行一次灾难恢复演练:从备份仓库恢复数据到隔离测试环境,验证服务可正常启动;模拟主节点宕机,验证 Keepalived VIP 漂移是否正常。未经验证的备份等同于没有备份。
版本控制与变更管理
所有配置文件、脚本、playbook 进 Git;使用 Git tag 标记生产发布版本(v1.2.3-prod);高风险变更通过 Pull Request + Review 流程,不直接推送到 main 分支。
安全持续加固
- 定期运行
lynis audit system,关注评分趋势 - 订阅 Debian 安全公告:
apt install -y debian-security-support unattended-upgrades确保安全补丁自动安装- 每季度审查
sudoers.d/、authorized_keys、防火墙规则
最小化与容器化
尽量将业务服务容器化(Docker / Podman),使宿主机只运行基础系统服务;使用 Packer 维护标准化机器镜像,新机器从镜像启动而非手动配置;推进基础设施即代码(Ansible + Packer),减少人工操作带来的配置漂移。
总结
本教程从零到生产级运维的全链路已覆盖:基础部署 → 安全加固 → 存储管理 → 业务服务 → 自动化演进。真正的运维能力在于建立可重复、可审计、可恢复、可自动化的体系,而不是记住所有命令。建议将本教程所有文件放入一个 Git 仓库,持续补充实践记录和踩坑总结,形成个人或团队的 Debian 运维知识库。