使用crontab自动同步hexo博文

自己的博客使用了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能自动监控文件夹变化,所以博客文章也就自动显示到了页面上了。