32 - Debian 运维工程师考点总结
考点梯队总览
第一梯队(核心必考,必须做到闭眼写出)
软件包管理
| 考点 | 关键命令 / 知识点 |
|---|---|
| 源配置 | sources.list 结构;non-free-firmware 组件;backports 启用方式 |
| 日常操作 | apt update / full-upgrade / autoremove / autoclean / clean |
| 包查询 | apt list --installed / --upgradable / dpkg -l / dpkg -L / dpkg -s |
| 版本锁定 | apt-mark hold <包> / unhold |
网络配置
| 考点 | 关键命令 / 知识点 |
|---|---|
| systemd-networkd | .network 文件结构;[Match] / [Network] / [Link] 字段 |
| ifupdown | /etc/network/interfaces 语法;ifup / ifdown |
| DNS | resolvectl status;/etc/resolv.conf 符号链接指向 |
| 诊断工具 | ip addr / ip route / ss -tuln / resolvectl query |
系统安全
| 考点 | 关键命令 / 知识点 |
|---|---|
| SSH 加固 | 端口 2222;PermitRootLogin no;PasswordAuthentication no;AllowUsers |
| fail2ban | jail.local 配置;port、maxretry、bantime、ignoreip 字段 |
| ufw / nftables | ufw allow / deny / status;nft table / chain / rule 写法 |
| AppArmor | aa-status / aa-complain / aa-enforce;DENIED 日志定位 |
| unattended-upgrades | Allowed-Origins;Automatic-Reboot = false |
| sudoers.d | visudo -c 语法检查;NOPASSWD;Cmnd_Alias |
存储与文件系统
| 考点 | 关键命令 / 知识点 |
|---|---|
| 分区 | parted -s GPT 分区;fdisk MBR 分区;partprobe 通知内核 |
| LVM | pvcreate → vgcreate → lvcreate;lvextend + xfs_growfs 两步缺一不可 |
| 快照 | lvcreate -s;COW 机制;lvconvert --merge 恢复 |
| 文件系统 | mkfs.xfs -f / mkfs.ext4;xfs_growfs(在线)/ resize2fs(在线) |
| fstab | UUID 写法;noatime;_netdev(NFS/CIFS);nofail |
服务与进程
| 考点 | 关键命令 / 知识点 |
|---|---|
| systemctl | enable --now / mask / daemon-reload / reset-failed |
| 单元文件 | [Unit] / [Service] / [Install];Type;Restart=always;After=network-online.target |
| journalctl | -u / -f / -b / -p err / --since / --disk-usage / --vacuum-time |
第二梯队(频繁出现,需熟练掌握)
用户与权限
adduser/usermod -aG/deluser --remove-homesetfacl -m u:ops:rwx /dir/getfacl /dir- sudoers:
Cmnd_Alias、Runas_Alias、NOPASSWD精确控制
定时任务与日志
- systemd timer 单元文件:
OnCalendar/Persistent=true logrotate自定义规则:rotate/compress/delaycompress/postrotate- rsyslog 自定义规则:
if $programname == 'xxx' then /path
容器基础
docker run -d --name -p -v;docker compose up -d;docker logs- Podman rootless 模式;
podman generate systemd
自动化
- Ansible:
inventory语法;apt/copy/template/systemd/user模块 - Ansible Vault:
ansible-vault create/encrypt/decrypt;--vault-id @prompt - Shell:
set -euo pipefail;case结构;日志函数
备份与恢复
rsync -avz --delete;--dry-run预演;--link-dest硬链接增量borg create/list/extract/prune;COW 快照一致性备份流程
第三梯队(高级能力,加分项)
- 高可用:Keepalived VRRP(
virtual_router_id、priority、vrrp_script);HAProxy 负载均衡算法 - 网络文件共享:NFS
exports选项;Sambasmb.conf;_netdevfstab 参数 - 邮件:Postfix
main.cf(mydestination、mynetworks、smtpd_relay_restrictions);587 端口 Submission - 防火墙:nftables 完整
table inet filter/chain/ct state写法 - 云 CLI:
aws sts get-caller-identity;IAM Role 与 Access Key 的安全区别 - 镜像构建:Packer HCL 结构;
provisioner "shell"/"ansible" - 升级迁移:Bullseye → Bookworm 完整流程;第三方源兼容性处理
最容易丢分的 10 个点
| 序号 | 易错点 | 正确做法 |
|---|---|---|
| 1 | fstab 写错导致开机卡 emergency mode | 使用 UUID;写入后先 mount -a 测试;加 nofail |
| 2 | LVM 扩容只 lvextend 忘记扩文件系统 |
lvextend 后必须接 xfs_growfs(xfs)或 resize2fs(ext4) |
| 3 | 快照 COW 空间写满导致快照失效 | 预留原卷预期变更量的 120%;监控 Data% |
| 4 | nftables / ufw 规则写错把自己 SSH 封住 | 改防火墙前先确认 VMware 控制台可用;改完立即测试新连接 |
| 5 | AppArmor 阻断服务未看 DENIED 日志 | journalctl \| grep "apparmor.*DENIED" 是第一步 |
| 6 | sudoers 语法错误导致所有 sudo 失效 | 只用 visudo 编辑;visudo -c -f <文件> 验证语法 |
| 7 | Ansible 连不上被管节点 | 检查 ansible_port=2222;SSH 密钥路径;被管节点的 Python 3 |
| 8 | rsync --delete 误删生产数据 |
先加 --dry-run 预演;确认后再执行;源路径末尾 / 含义要清楚 |
| 9 | 升级 codename 遗漏 sources.list.d 中的第三方源 | 列出所有 .list 文件逐一检查;第三方源先注释再升级 |
| 10 | cloud-init 配置写错导致实例拿不到密钥 | 本地 cloud-init devel schema --config-file <yaml> 验证语法 |
建议练习顺序
- 将易丢分的 10 个点每个独立练习至少 3 次,直到形成肌肉记忆
- 将第一梯队 5 个大项做到无需查文档独立完成
- 将第二梯队全部在虚拟机上跑通一遍
- 将第三梯队每项至少完整走一次流程
- 倒回来重做第一梯队,循环 2–3 轮