基於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