/home/ap/logs目录下有多个AppServer目录,如AppServer0、AppServer1、AppServer2……,只监控除了AppServer0目录以外其他AppServer目录下的log文件,统计AppServer目录下log文件产生的个数。由于每个AppServer目录下的log文件只保存10个(log、log.1、log.2……),超过10个log时,会把最早的log文件删了。
脚本中通过对比log.1文件的大小和创建时间来确定是否生成了一个新的log文件,并且把创建时间输出到tmp/AppServerx?.txt 文件中
#!/bin/bash DIR="/home/ap/logs" cd $DIR #取出除了AppServer0以外的AppServer目录名,并且存到AppServerx数组中# AppServerx=(`ls -d AppServer[^0]`) AppServern=`echo ${#AppServerx[*]}` #循环算出所有AppServer目录中log.1文件的初始时间# for ((i=0;i<"$AppServern";i++));do eval OLD${i}=`ls -l ${AppServerx[$i]}/log.1|awk '{print $5"_"$8}'` done #死循环,算出当前AppServer目录中log.1文件的时间和初始时间对比# while true;do for ((i=0;i<"$AppServern";i++));do sleep 3 TIME=`date +"%Y-%m-%d %H:%M:%S"` CURRENT=`ls -l ${AppServerx[$i]}/log.1|awk '{print $5"_"$8}'` A=$(eval echo \$OLD$i) #如果log.1文件当前时间和初始时间不同,就把当前时间记录到AppServer.txt文件中,代表产生了一个新的log文件# if [ $A != $CURRENT ];then eval OLD${i}="$CURRENT" eval echo \$OLD$i echo "$TIME" >>/tmp/${AppServerx[$i]}.txt fi done done