對於nginx測試來說,每次在更新nginx.conf 文件的時候總是需要重啟nginx 服務器才能生效,由為不便,所以就寫了一個簡單的腳本來實現更新文件
時,nginx 自動更新,同時也可以用在別的場景中,理論上可以可以使用到git-server倉庫更新后,執行 git用戶 git pull origin master 類似操作
1 #!/bin/bash 2 # $1 需要監測的文件 3 # $2 存放文件md5值,用於判斷文件是否更改 4 # $3 可選文件更新后,需要執行的命令(用'service nginx restart' 用單引號包起來) 5 # 適用場景,修改某配置文件或更新某文件以后自動處理某些事物 6 if [ ! $1 ] || [ ! $2 ] || [ ! -e $1 ] ; then 7 echo "\$1 or \$2 is file" 8 exit 9 fi 10 # 生成md5驗證文件 11 function creatMd5file() 12 { 13 md5sum -b $1 > $2 14 } 15 16 # 判斷文件是否存在 17 if [ ! -e $2 ] ; then 18 creatMd5file $1 $2 19 fi 20 21 while(true) ; do 22 # 檢測文件是否修改,$?返回1 表示修改, 0表示未修改 23 md5sum -c $2 --status 24 25 if [ $? -gt 0 ] ; then 26 if [ "$3" ]; then 27 $3 28 fi 29 30 creatMd5file $1 $2 31 32 fi 33 # 每過3秒檢測一次 34 sleep 3 35 done
