使用 inotify-tools 监控文件变动

引言

由于现在的博客是使用 Hexo 搭建,但没有部署到 Github Pages ,所以我使用 docker 部署在云服务器里,并用 hexo s 启动服务,但是每次更新博客都要清理缓存然后重新生成静态文件并启动服务。操作比较麻烦,所以我 googlelinux 系统下的一个强大的文件系统监控工具 —— 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

(由于时间关系,来不及做更多介绍,只给了一个简单的示例代码,下次有空补上)

参考资料

Powered by Hexo and Hexo-theme-hiker

Copyright © 2018 - 2023 Leamx's Blog All Rights Reserved.

UV : | PV :