Hugo + NGINX 自动化部署脚本:一行命令发布博客

用 shell 脚本实现 Hugo 构建、服务器部署、缓存清理一体化流程,告别手动 scp。

痛点

每次写完文章都要手动执行:

  1. hugo 构建
  2. scp -r public/* user@server:/var/www/html/
  3. 清理缓存
  4. 检查线上是否正常

太麻烦了,写成脚本一行搞定。

部署脚本

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
#!/bin/bash
set -e

echo "🚀 开始部署博客..."

# 1. 构建
echo "📦 构建站点..."
hugo --minify

# 2. 同步到服务器(rsync 增量传输,比 scp 快)
echo "📡 同步到服务器..."
rsync -avz --delete public/ ubuntu@server:/var/www/html/

# 3. 清理 NGINX 缓存
echo "🧹 清理缓存..."
ssh ubuntu@server "sudo nginx -s reload"

echo "✅ 部署完成!访问 https://wenyiblog.top/ 查看"

效率对比

方式 耗时 出错率
手动 ~2 分钟 中等
脚本 ~15 秒 几乎为零

进阶方案

  • GitHub Actions:push 自动部署
  • Webhook:本地写完触发远程构建
  • 定时监控:Cron 每天检查站点可用性

💾 脚本已放到 Gitee,可直接 fork 使用。

本博客文章采用 CC BY-NC-SA 4.0 许可协议
服务器推荐

腾讯云 · 新用户专属优惠

本博客部署在腾讯云服务器,稳定运行一年多。如果你是新用户或想搭建个人项目,推荐试试腾讯云的优惠活动。

查看优惠详情 →
阅读
上一篇
写技术博客的初衷:输出是最好的输入
下一篇
K8s 云原生架构实战:从单体到微服务的演进
广告

📚 关注公众号,免费获取技术材料

扫码关注公众号,回复「资料」领取:

  • 📘 企业架构设计模板
  • 📗 数据治理实施指南
  • 📙 工业软件技术白皮书
公众号二维码

长按或扫描二维码