外观
练习 — Linux 运维基础
对应知识点:
Linux·SSH·systemd· 日志与进程 对应文档:docs/phase-08-deployment/linux-operations.md代码目录:workspace/phase-08/linux-ops/
前置条件:可访问 Linux 环境(云服务器、WSL2 或虚拟机)。
Level 1 — 基础
练习 1.1 · SSH 连接与密钥
要求:
- 生成 ED25519 密钥对,配置到服务器
~/.ssh/authorized_keys - 禁用密码登录(文档记录步骤,生产环境谨慎操作)
- 使用
ssh -i或 config 别名连接 - 记录到
workspace/phase-08/linux-ops/ssh-setup.md
练习 1.2 · 基础命令
在服务器上完成并记录命令与输出说明:
要求:
uname -a、df -h、free -h、top或htop- 查看 Go 二进制进程:
ps aux | grep twin - 查看端口占用:
ss -tlnp | grep 8080
练习 1.3 · 目录与权限
要求:
- 创建部署用户
deploy(非 root 运行服务) - 应用目录
/opt/twin-api,属主 deploy - 二进制权限 755,配置文件 640
- 说明 principle of least privilege
Level 2 — 应用
练习 2.1 · systemd 服务
创建 /etc/systemd/system/twin-api.service:
要求:
User=deploy,WorkingDirectory=/opt/twin-apiEnvironmentFile=/opt/twin-api/.envExecStart=/opt/twin-api/serverRestart=on-failuresystemctl enable --now twin-api验证
练习 2.2 · 日志查看
要求:
journalctl -u twin-api -f跟踪日志- 配置 logrotate 或 journal 大小限制(文档说明)
- 模拟崩溃重启,观察 Restart 行为
练习 2.3 · 防火墙
要求:
- ufw 或 firewalld:仅开放 22、80、443
- 8080 不对外暴露(仅 Nginx 反代)
- 验证外网无法直接访问 8080
Level 3 — 综合
练习 3.1 · 部署脚本
在 workspace/phase-08/linux-ops/deploy.sh 编写:
要求:
- 本地交叉编译
GOOS=linux GOARCH=amd64 go build - scp 上传到服务器
- ssh 执行 systemctl restart
- 健康检查 curl
/health
练习 3.2 · 备份 cron
要求:
- 编写 postgres 备份脚本
pg_dump+ 日期命名 - crontab 每日凌晨执行
- 保留最近 7 天备份
- 文档恢复步骤
Level 4 — 项目实践
练习 4.1 · 数字孪生后端上线清单
在 workspace/phase-08/linux-ops/ 完成 生产运维 Runbook:
要求:
runbook.md含:服务器规格建议、部署步骤、回滚步骤、常见故障排查- systemd unit 文件模板
- 监控项清单:CPU、内存、磁盘、API 延迟、WS 连接数
- AGV 实时服务特有的运维注意点(长连接、Redis 内存)
学习检查
- [ ] 为何生产环境避免 root 运行应用?
- [ ] systemd Restart 策略有哪些?
- [ ] journalctl 与文件日志如何选择?
- [ ] 零停机部署需要哪些额外组件?
提交方式
检查答案 — linux operations 练习 X.X学习导航
上一篇:Docker 与 Docker Compose · 对应知识文档 · 下一篇:Nginx、HTTPS 与 DNS