自己的博客使用了hexo,代码托管在bitbucket上,为了充分利用自己的服务器,自己又是self hosted的一个hexo服务。这样的神奇配置造成和我一样使用这套配置的人非常的少。最近这段就遇到了一个比较独特的需求。
需求
在本地编写一个博客文档。编写完之后commit并push到代码仓库。剩下的各种事情交给自动化脚本,自己博客上即可查看最新的文章。
目前现状
每次编写新博客文章之后,同步到线上代码仓库后,还需要:
ssh登录自己的服务器 -> git pull
更新线上代码
解决方案思路
查了下网上的方案,主要是几种套路:
- 我是用GitHub直接托管的博客,推上去就好啦(pass)
- 用Travis做自动部署(然而Travis免费版只支持GitHub公开Repo,Bitbucket私有Repo不支持)
- 使用
git hook
部署(稍微看了下,没有时间仔细研究)
由于上面的问题,最后都没有可以直接照搬的方案。
总结下来其实只需要实现定时拉取同步Bitbucket的git版本就好。
目前解决方案
目前解决方案是基于crontab实现的定时脚本,定时拉取远端代码。
执行:
1 | crontab -e |
编辑crontab脚本。然后在编辑器里输入:
1 | */30 * * * * cd /home/xxx/blog;/usr/bin/git pull |
让系统每半小时执行一次拉取的操作。由于hexo能自动监控文件夹变化,所以博客文章也就自动显示到了页面上了。