linux 递归检测文件是否发生变化

#!/bin/bash


# 参数 文件绝对路径
function check(){
	file_name=$1	
	file_name_md5="${file_name}.md5"
	file_name_md5_now="${file_name_md5}.now"
	md5sum ${file_name} > ${file_name_md5_now}
	diff ${file_name_md5_now} ${file_name_md5} >/dev/null 2>&1
	if [ $? -ne 0 ]
	then
	  nginx -reload  &>>/dev/null ## 比如监控的是nginx配置文件变化 那么这里就是我要触发的事件
	  cat ${file_name_md5_now} > ${file_name_md5}
	  rm -rf ${file_name_md5_now}

	else 
  	  rm -rf ${file_name_md5_now}	  
	fi

}
function list()
{
        for var in `ls --ignore=*md5 $1`
        do
	        if test -d "$1/${var}"
	        then
	                list "$1/${var}"
	        else
                    tmp="$1/${var}"
                    if [ ${tmp##*.} = 'conf'  ]
                    then
     echo "${tmp##*.}"	
	        	       check ${tmp}
	        	    fi
	        fi
        done
}

# path=$1  也可以这样通过参数传递
path=/etc/nginx/conf.d  ##检测的目录 这里监控docker nginx的配置目录

list ${path}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值