概述
#功能:目录中文件变化监控,arg1-目录,arg2-文件名通配符,输出-新产生的文件列表
function dir()
{
local dir=$1
local name=$2
local int=$3
local tmp1=/tmp/f_mon_dir_temp1 #旧文件列表
local tmp2=/tmp/f_mon_dir_temp2 #新文件列表
local count=0
>$tmp1
int=${int:-1}
while true;do
find $dir -name "$name" > $tmp2
count=`grep -vxFf $tmp1 $tmp2|wc -l`
if [ $count -gt 0 ];then
printf "r"
grep -vxFf $tmp1 $tmp2|xargs -i ls -l {}
cat $tmp2>$tmp1
fi
sleep $int
printf '.'
done
}
#功能:文件内容监控,arg1-文本文件路径,arg2-配置字符串,输出-匹配的数据行增长情况
function txt()
{
local file=$1
local str=$2
local int=$3
local pid=
local rows=0
local row1=0
local tmp1=/tmp/f_mon_txt_temp1
local count1=0 #新增加的过滤行
local count2=0 #总的过滤行
int=${int:-1}
rows=`cat $file|wc -l`
while true;do
sed -n "$rows,$p" $file >$tmp1
row1=`cat $tmp1|wc -l`
rows=$((rows+row1))
count1=`cat $tmp1 | grep $str | wc -l`
if [ $count1 -gt 0 ];then
printf "r"
count2=$((count2+count1))
echo `date +%Y-%m-%d_%H:%M:%S` Count:$count2
fi
sleep $int
printf '.'
done
}
#功能:zk某个znode某个属性的监控,arg1-znode,arg2-属性,输出-变化及其发生时间
function zk()
{
local zonde=$1
local str=$2
local int=$3
int=${int:-1}
local tmp1=/tmp/f_mon_zk_temp1 #zk信息
local val1=
local val2=
while true;do
$ZOOKEEPER_HOME/zkCli.sh &>$tmp1 <<EOF
get $zonde
quit
EOF
val2=`cat $tmp1 | grep = | grep $str`
if [ "$val2" != "$val1" ];then
printf "r"
echo `date +%Y-%m-%d_%H:%M:%S` $val2
val1=$val2
fi
sleep $int
printf '.'
done
}
最后
以上就是外向跳跳糖为你收集整理的Shell - 目录、文件、zookeeper监控的全部内容,希望文章能够帮你解决Shell - 目录、文件、zookeeper监控所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复