抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

快速通关!这里会涉及到:

  • rsync同步工具
  • docker容器
  • crontab自动化
  • shell脚本化

思维链:

  • 将笔记文件夹同步到Hexo所在的位置后,进入容器中生成静态文件并部署到github pages,最后退出容器并保存输出日志。
  • 把上面的步骤自动化。

1、更新博客源文件

使用rsync来快速更新文件:

1
rsync -av --delete /DATA/Documents/Obsidian/Code/Blog/ /DATA/AppData/node-hexo-blog/blog/source/_posts/

2、部署更新后的博客

使用&&来连续部署命令:

1
docker exec -it node-hexo-blog /bin/sh -c "cd /hexo/blog && hexo clean && hexo d && exit"

3、脚本化

将更新博客的命令进行脚本化:

1
nano hexo-autoupdate.sh
1
2
3
4
5
6
7
8
9
#!/bin/bash

# 同步文件
rsync -av --delete \
/DATA/Documents/Obsidian/Code/Blog/ \
/DATA/AppData/hexo/blog/source/_posts/

# 更新博客
sudo docker exec -it node-hexo /bin/sh -c "cd /hexo/blog && hexo clean && hexo d && exit"

给这个脚本添加执行权限:

1
chmod +x /path/to/hexo-autoupdate.sh

4、自动化

使用crontab来实现自动化更新:

1
sudo crontab -e

在打开的编辑器中,添加以下行:

1
0 3 * * * /path/to/hexo-autoupdate.sh >> /path/to/hexo-autoupdate.sh.log 2>&1

完成!

5、测试

测试一下脚本:

1
sudo ./hexo-autoupdate.sh

注意、如果文件是在 Windows 系统上创建的,可能会有不兼容的行结束符。
使用 dos2unix 工具可以修复这个问题:

1
2
sudo apt-get install dos2unix
dos2unix hexo-autoupdate.sh

或者,试着检查文件内容:

1
cat ./hexo-autoupdate.sh

如果一切正常,执行这个脚本就可以看到自动化执行的反馈了!

在那以后……

可以试着搭建图形化控制面板来更方便地控制。

评论