ABB(Ahui Blog Build)生成的静态html文件,可以用git比较方便的同步到VPS Server上。

首先Server和Client二边都安装好git.

VPS Server上做如下设定后,就不用管了:

创建git仓库目录为www.git,要安全起见,可以换用个普通用户帐号,并修改相应目录及权限。

cd /root/tmp
mkdir www.git
cd www.git
git --bare init

建立www根目录,并配置nginx指向。

mkdir /home/wwwstatic/public

建立git hook,在Client push文件后,自动checkout到指定的www根目录

cat > hooks/post-receive
#!/bin/bash
GIT_WORK_TREE=/home/wwwstatic/public git checkout -f

加上可执行属性

chmod +x post-receive

Server端设置完毕。

Client端如果还没有ssh key,则用

ssh-keygen -t rsa -C "your_email@example.com"

生成key,然后将~/.ssh/idrsa.pub中的内容复制到Server端的 /root/.ssh/authorizedkeys中。

然后进入静态html生成目录,做一次初始化。

cd public
git init
git remote add ahuius root@ahui.us:/root/tmp/www.git

设定完毕。

这样每次用abb bulid整个站点后,执行下sync.sh就可以将新生成的html文件同步到vps的www根目录了。

cat sync.sh

#!/bin/bash
cd public
git add .
git commit -m "ok"
git push -f ahuius master

这篇Blog是完成设定后第一篇被同步的文章.

./sync.sh
[master 97bc2d2] ok
 84 files changed, 1000 insertions(+), 671 deletions(-)
 create mode 100644 post/yong_git_tong_bu_jing_tai_wang_zhan.html
Counting objects: 174, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (88/88), done.
Writing objects: 100% (88/88), 21.61 KiB, done.
Total 88 (delta 84), reused 0 (delta 0)
To root@ahui.us:/root/tmp/www.git
   7167c21..97bc2d2  master -> master