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