Jekyll自动检测代码更新

jekyll是一个静态博客生成软件, 我们把代码放在一个仓库里, 只要远程代码更新, 我们就从把它拉到自己的服务器, 然后重新启动jekyll.

cd /root/blog
git clone outproject

设置定时器

自动拉取代码重新部署jekyll:

crontab -e
*/1 * * * * /root/blogpull.sh  >> /root/cronblogpull.log

/root/blogpull.sh如下:

脚本文件内容

#! /bin/bash

result=$(cd /root/blog && git pull | grep "Already up-to-date")
if [[ "$result" != "" ]]
then
  exit 0
  #echo "`date '+%Y%m%d %H:%M'`:不需要更新代码"
else
  echo "`date '+%Y%m%d %H:%M'`:代码已经更新,开始"
  ps -ef|grep jekyll | awk '{print $2}'| sed -n '1,1p' | xargs -i kill {}
  rm -rf /root/_site
  jekyll serve -H '0.0.0.0' -s '/root/blog' >/dev/null 2>&1 &
fi

/root/blog为我们jekyll静态文件所在的仓库路径.