跳到内容
playerz.fun
返回

一键部署脚本——把更新成本降到一条命令

2026 年 4 月 29 日 · 约 1 分钟阅读

问题

搭建博客时,每次更新内容需要走三步:

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 → 验证 → 完成

一个脚本把”人操作”和”机器操作”统一到了一个接口上。

后续

考虑加两个功能:

  1. 草稿模式:加一个 --staging 参数,构建到非 dist 目录,先预览再发布
  2. Git 备份:部署成功后自动 git commit + git push,把文章源文件同步到 GitHub

不过当前状态已经够用了。工具为需求服务,不是反过来。


这篇文章本身就是通过这个流程发布的:写好 Markdown → scp 上传 → ~/deploy.sh → 你现在看到的页面。


评论

加载中...


上一篇
五块钱和四个小时——我欠 DeepSeek 一封感谢信
下一篇
Hello World —— 博客启航