Chinaunix首页 | 论坛 | 博客
  • 博客访问: 390765
  • 博文数量: 25
  • 博客积分: 496
  • 博客等级: 下士
  • 技术积分: 815
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-01 11:18
文章分类
文章存档

2014年(2)

2013年(6)

2012年(17)

分类: 系统运维

2012-08-08 09:16:16

/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 文件中
  1. #!/bin/bash
  2. DIR="/home/ap/logs"
  3. cd $DIR
  4. #取出除了AppServer0以外的AppServer目录名,并且存到AppServerx数组中#
  5. AppServerx=(`ls -d AppServer[^0]`)
  6. AppServern=`echo ${#AppServerx[*]}`
  7. #循环算出所有AppServer目录中log.1文件的初始时间#
  8. for ((i=0;i<"$AppServern";i++));do
  9.    eval OLD${i}=`ls -l ${AppServerx[$i]}/log.1|awk '{print $5"_"$8}'`
  10. done
  11. #死循环,算出当前AppServer目录中log.1文件的时间和初始时间对比#
  12. while true;do
  13.   for ((i=0;i<"$AppServern";i++));do
  14.     sleep 3
  15.     TIME=`date +"%Y-%m-%d %H:%M:%S"`
  16.     CURRENT=`ls -l ${AppServerx[$i]}/log.1|awk '{print $5"_"$8}'`
  17.     A=$(eval echo \$OLD$i)
  18. #如果log.1文件当前时间和初始时间不同,就把当前时间记录到AppServer.txt文件中,代表产生了一个新的log文件#
  19.     if [ $A != $CURRENT ];then
  20.       eval OLD${i}="$CURRENT"
  21.       eval echo \$OLD$i
  22.       echo "$TIME" >>/tmp/${AppServerx[$i]}.txt
  23.     fi
  24.   done
  25. done

阅读(2851) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~