引言
由于现在的博客是使用 Hexo
搭建,但没有部署到 Github Pages
,所以我使用 docker
部署在云服务器里,并用 hexo s
启动服务,但是每次更新博客都要清理缓存然后重新生成静态文件并启动服务。操作比较麻烦,所以我 google
到 linux
系统下的一个强大的文件系统监控工具 —— inotify-tools
。
示例
以下代码以监控 /data/blog/source/_posts/
文件夹为例。
1 2 3 4 5 6 7 8 9 10 11 12
| #!/bin/bash
inotifywait -mrq --timefmt '%y/%m/%d %H:%M' --format '%T %w%f %e' --event delete,modify,create,attrib /data/blog/source/_posts/ | while read date time file event do case $event in MODIFY|CREATE|MOVE|DELETE|MOVED_FROM|MODIFY,ISDIR|CREATE,ISDIR|MODIFY,ISDIR|MOVED_FROM,ISDIR|DELETE,ISDIR) ps -ef | grep hexo | grep -vE 'zsh|grep|tail|vi' | awk '{print $2}' | xargs kill -9 cd /data/blog npx hexo clean && npx hexo g && nohup npx hexo s > /dev/null 2>&1 & ;; esac done
|
(由于时间关系,来不及做更多介绍,只给了一个简单的示例代码,下次有空补上)
参考资料