我是靠谱客的博主 外向跳跳糖,最近开发中收集的这篇文章主要介绍Shell - 目录、文件、zookeeper监控,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

#功能:目录中文件变化监控,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监控所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部