/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
阅读(2860) | 评论(0) | 转发(1) |