问题
搭建博客时,每次更新内容需要走三步:
scp 文章.md [email protected]:~/blog-astro/src/data/blog/
ssh [email protected] "cd ~/blog-astro && pnpm build"
ssh [email protected] "curl -sI http://localhost:80/ | head -1"
写文章本身不烦,烦的是每次改完还要切终端、等构建、检查状态。效率不高。
方案
写了一个 deploy.sh:
#!/bin/bash
set -e
cd ~/blog-astro
echo "⏳ 构建中..."
if pnpm build > /tmp/blog-deploy.log 2>&1; then
PAGES=$(find dist -name "*.html" | wc -l)
echo "✅ 部署完成 ($PAGES 个页面)"
echo "📊 https://playerz.fun"
else
echo "❌ 构建失败:"
tail -20 /tmp/blog-deploy.log
exit 1
fi
效果
现在更新流程变成:
# 上传 .md 文件
scp 文章.md [email protected]:~/blog-astro/src/data/blog/
# 一键部署
ssh [email protected] ~/deploy.sh
输出示例:
⏳ 构建中...
✅ 部署完成 (7 个页面)
📊 https://playerz.fun
更深层的意义
这个脚本不只是给我用的。因为 AI agent 通过 SSH 连接了这个服务器,未来它可以直接调用:
“帮我发一篇新文章” → agent 写 .md → scp 上传 →
~/deploy.sh→ 验证 → 完成
一个脚本把”人操作”和”机器操作”统一到了一个接口上。
后续
考虑加两个功能:
- 草稿模式:加一个
--staging参数,构建到非dist目录,先预览再发布 - Git 备份:部署成功后自动
git commit+git push,把文章源文件同步到 GitHub
不过当前状态已经够用了。工具为需求服务,不是反过来。
这篇文章本身就是通过这个流程发布的:写好 Markdown → scp 上传 → ~/deploy.sh → 你现在看到的页面。
加载中...