调整ATS日志处理机制及相关脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了调整ATS日志处理机制及相关脚本相关的知识,希望对你有一定的参考价值。

    在ATS的尝试使用中,日志处理是很重要的一环,我在研究这个时候花了不少精力,首先我们测试用的ATS是5.3.2版本,默认打印的是二进制日志squid.blog,一天一切割,当然也可以变为文本日志,不过ATS自带的很牛逼的分析traffic_logstats就用不了了,怎么办呢?苦思冥想,最后想了个好办法,打两套日志,文本日志存档,供我们看,二进制日志一天一删除,哈哈,问题圆满解决。为了迎合线上的访问量,日志设置为了5分钟一切割,切割后改名归档,同时又为了缩小存储空间,定义凌晨3点(访问量小)开始打包压缩,再做脚本时发现遇到跨年时会出故障,又再次做了多次优化,目前运行的还是比较健壮的,分享出来,一起研究学习。

    ATS的日志配置不多说了,以前有介绍,下面是我写的一个处理脚本:


#!/bin/sh
#writer:gaolixu
BACKUP_PATH="/var/log/ats"
LOG_PATH="/opt/ats/var/log/trafficserver"
yestday=`date -d yesterday +%d`
yestmon=`date -d yesterday +%m`
yestyear=`date -d yesterday +%Y`
testdir(){
BACKUP_DIR=$BACKUP_PATH/$1/$2/$3
if [ ! -d "$BACKUP_DIR" ]
then
        mkdir -p $BACKUP_DIR
        if [ "$?" != "0" ]
        then
          echo "dir error"
                exit
        fi
fi
}
yestzip(){
gzip $BACKUP_PATH/$yestyear/$yestmon/$yestday/*
}

cd $LOG_PATH

ls *.log*old  > /tmp/atslog.tmp

for i in `cat /tmp/atslog.tmp` 

do
  i_time=`echo $i |awk -F‘[.|-]‘ ‘{print $(NF-2)$(NF-1)}‘`
  i_bj=`echo $i |awk -F‘[.|-]‘ ‘{print $1}‘`
  i_year=`echo ${i_time:0:4}`
  i_mon=`echo ${i_time:4:2}`
  i_day=`echo ${i_time:6:2}`
  i_hour=`echo ${i_time:8:2}`
  i_min=`echo ${i_time:11:2}`
  testdir $i_year $i_mon $i_day
  mv $LOG_PATH/$i $BACKUP_DIR/${i_year}-${i_mon}-${i_day}_${i_hour}_${i_min}_${i_bj}.log
  if [ "$i_hour" = "03" -a "$i_min" = "00" ];then

     yestzip

     rm -rf /opt/ats/var/log/trafficserver/squid.blog*

  fi  

done &>/dev/null


本文出自 “奔跑的linux.........” 博客,请务必保留此出处http://benpaozhe.blog.51cto.com/10239098/1746637

以上是关于调整ATS日志处理机制及相关脚本的主要内容,如果未能解决你的问题,请参考以下文章

Python自动化测试之异常处理机制实例详解

关于iOS9中的App Transport Security相关说明及适配(更新于2016.7.1)

关于iOS9中的App Transport Security相关说明及适配(更新于2016.7.1)

Spring cloud微服务安全实战-6-5jwt改造之日志及错误处理

Android 事件分发机制分析及源码详解

Android 事件分发机制分析及源码详解