通过脚本自动部署Hugo博客:使用rsync高效上线(支持SSH Key与普通方式)

前言 使用 Hugo 构建静态博客后,部署步骤不应成为发布的阻碍。本文提供一个通用 deploy.sh 脚本,支持: ✅ SSH 密钥方式(推荐) ✅ SSH 密码方式(基础) ✅ 自动备份远程旧版本 ✅ 一键构建并部署 Hugo 项目 一、基础配置项 脚本开头包含以下配置项,根据你实际情况进行修改: # === 配置项 === USER="your_ssh_user" # SSH 用户名 HOST="your_server_ip" # 服务器 IP 或域名 PORT="22" # SSH 端口 REMOTE_DIR="/var/www/html" # 网站部署目录 LOCAL_DIR="public" # Hugo 输出目录 PRODUCTION_URL="https://www.yourname.com" # 你的网站正式地址 二、版本一:使用 SSH 密钥方式(推荐) 1. 生成 SSH 密钥 在本地终端执行: ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 按提示选择存储路径(默认 ~/.ssh/id_rsa),不要设置密码短语(passphrase)可实现无感连接。 2. 将公钥复制到服务器 ssh-copy-id -i ~/.ssh/id_rsa.pub user@your_server_ip 或者手动将 ~/.ssh/id_rsa.pub 内容追加到服务器的 ~/.ssh/authorized_keys。 3. 完整脚本示例(支持自动备份) #!/bin/bash # === 配置项 === USER="your_ssh_user" HOST="your_server_ip" PORT="22" REMOTE_DIR="/var/www/html" LOCAL_DIR="public" PRODUCTION_URL="https://www.yourname.com" SSH_KEY="$HOME/.ssh/id_rsa" ENABLE_BACKUP=true BACKUP_DIR="/var/www/backup_$(date +%Y%m%d_%H%M%S)" echo "📦 正在构建 Hugo 博客..." hugo || { echo "❌ Hugo 构建失败"; exit 1; } if [ "$ENABLE_BACKUP" = true ]; then echo "📁 正在备份旧版本..." ssh -p $PORT -i "$SSH_KEY" $USER@$HOST "cp -r $REMOTE_DIR $BACKUP_DIR" fi echo "🚀 开始部署..." rsync -avz -e "ssh -p $PORT -i $SSH_KEY" --delete $LOCAL_DIR/ $USER@$HOST:$REMOTE_DIR && echo "✅ 部署完成!访问:$PRODUCTION_URL" || echo "❌ 部署失败" 三、版本二:使用 SSH 密码方式(简单) 若不使用 SSH Key,可修改 rsync 命令如下: ...

2025年06月09日 · 1 分钟 · 199 字 · Silas