基于inotify实现nodejs的提交后自动同步

首先在一台server上使用nodejs+express启动一个服务器,并使用supervisor 支持修改文件后

自动重启的功能


然后在这个工程上添加git仓库的引用(指向同一个服务器的另一个git仓库所对应的位置)

然后在所有人的本地开发环境也从server仓库中clone git 工程,并进行开发。


当提交代码后,使用inotify监控server 的git仓库文件变化。

如果发生变化后,通知线上运行的server 进行一次git pull,操作,由于supervisor ,线上服务

将自动重启(更行),达到通过git提交自动更新线上服务的目的。


这里的关键是inotify这个shell脚本:

#!/bin/sh
inotifywait -rme modify,attrib,move,close_write,create,delete,delete_self /develop/version_controller/AIS/aisweb/.git | while read file; 
do
if [ "$file" == "/develop/version_controller/AIS/aisweb/.git/logs/refs/heads/ MODIFY master" ]; then   
    echo ====== modify master!!!;
    cd /develop/AIS/aisweb/; git pull
fi
done