现在这个站点的本地文件在一台vps上,我把写好的文章用ftp传到vps上再通过对vps执行hexo g -d同步到网站上.

Hexo自带的监控参数Hexo g -w -d用起来总是执行很慢,有时候要卡很久才能部署成功。

所以,只要再想一种办法让vps监视着_post文件夹有没有变动就行了.

恰好,最近发现了一个可以监控文件变化的程序: inotify-tools

安装的话,Debian的话只要

1
apt-get install inotify-tools

就行了.

再搜一下,有个inotifywait指令

inotifywait命令参数

-m是要持续监视变化。
-r使用递归形式监视目录。
-q减少冗余信息,只打印出需要的信息。
-e指定要监视的事件列表。
--timefmt是指定时间的输出格式。
--format指定文件变化的详细信息。

可监听的事件

access 访问,读取文件。
modify 修改,文件内容被修改。
attrib 属性,文件元数据被修改。
move 移动,对文件进行移动操作。
create 创建,生成新文件
open 打开,对文件进行打开操作。
close 关闭,对文件进行关闭操作。
delete 删除,文件被删除。

然后是脚本

1
2
3
4
5
6
7
#!/bin/sh
inotifywait -rmq -e modify /root/site/source/_posts/ | while read event
do
cd /root/site
hexo clean
hexo g -d
done

只要脚本执行着,_post文件夹有变化就会自动同步咯~

P.S.: 这是自动同步的第一篇文章啊^_^