#!/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}