shell腳本:檢測某個文件更新后,執行的相應的操作


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM