一直喜欢用1panel,想发挥香港服务器的低延迟优势,同时又喜欢hexo,于是自己写个脚本实现自动更新。
先安装git:
1
| sudo apt install git-all
|
然后在网站那里建立一个静态网站

现在目录中 git clone 一下你的hexo仓库
记得把 index.html 所在的根目录文件挪到index文件夹里,可以先访问一下试试
然后就在定时任务里加入以下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| #!/bin/bash
BLOG_DIR="/opt/1panel/www/sites/blog/index" GIT_REMOTE="origin" GIT_BRANCH="main"
log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" }
log "========== 开始更新博客 =========="
if [ ! -d "$BLOG_DIR" ]; then log "错误:博客目录 $BLOG_DIR 不存在,脚本退出。" exit 1 fi
cd "$BLOG_DIR" || { log "错误:无法进入目录 $BLOG_DIR"; exit 1; }
if [ ! -d ".git" ]; then log "错误:当前目录不是 Git 仓库,请先执行 git clone。" exit 1 fi
git config --global --add safe.directory "$BLOG_DIR"
log "拉取远程最新代码(fetch)..." git fetch "$GIT_REMOTE" "$GIT_BRANCH" if [ $? -ne 0 ]; then log "错误:git fetch 失败,请检查网络或仓库权限。" exit 1 fi
log "强制重置本地分支到远程最新提交(reset --hard)..." git reset --hard "$GIT_REMOTE/$GIT_BRANCH" if [ $? -eq 0 ]; then log "本地仓库已强制同步到远程 $GIT_BRANCH 分支的最新状态。" else log "错误:git reset 失败。" exit 1 fi
if [ -n "$BUILD_CMD" ]; then log "执行构建命令:$BUILD_CMD" eval "$BUILD_CMD" if [ $? -eq 0 ]; then log "构建成功。" else log "错误:构建失败。" exit 1 fi fi
log "========== 更新完成 =========="
|
记得把博客根目录改成自己的
然后就行啦,更新时间我自己设得是 30min,短一点也没啥问题