Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10804891
  • 博文数量: 2905
  • 博客积分: 20098
  • 博客等级: 上将
  • 技术积分: 36298
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-23 05:00
文章存档

2012年(1)

2011年(3)

2009年(2901)

分类: LINUX

2009-03-23 11:38:01

 
squid日志的分割
      
上网查了很久都没有我想要的结果,真的很郁闷!于是我决定想尽办法来达到我想要的结果,离我期望的还差那么一点点但相对来说自己还是比较满意的。好了多话不说了,进入题:
 
系统是centos5.2的,既然需要的squid日志的提取,相信squid代理的配置应该都没有问题,在这里就不多说了。在这提供两种方法:
方法
需要安装软件包,newsyslog-1.8.tar.gz 自己可以从网上下载,在这就不多说了
 安装步骤:1
 ./configure
  make
  make install------此步安装完成后newsyslog应道安装在以下路径
安装这步可能会提示你创建文件或目录如下:
Mkdir  /usr/local/man/-----------------后新建一个man8文件
1.2修改配置文件 /usr/local/etc/newsyslog.conf
set squid_logpath = /var/log/squid/access.log  --------squid日志的路径下面就不过多的解释
set squid_log = /var/log/squid/access.log
set date_squid_log = /var/log/squid/access%Y%M%D.log
SQUID{
        restart: run /usr/sbin/squid -k rotate
        log:  SQUID squid_log squid squid 644
        archive: SQUID date_squid_log 0
步骤1.3-----保存退出后
执行   newsyslog即可也可以将此任务添加到crontab文件里
00      23      *       *       *       /usr/local/sbin/newsyslog
方法二:
那就要编写一个shell
Shell的内容如下:shell的存放/var/log/squid/extract-today.sh
#!/bin/bash
date > today-string-file
#$grepLine="perl -pe 's/[\d\.]+/localtime($&)/e' access.log|grep "
cat today-string-file | while read LINE ; do
field1=`echo $LINE|awk '{print $1}'`
field2=`echo $LINE|awk '{print $2}'`
field3=`echo $LINE|awk '{print $3}'`
field4=`echo $LINE|awk '{print $4}'`
field5=`echo $LINE|awk '{print $5}'`
field6=`echo $LINE|awk '{print $6}'`
 
echo $field1
echo $field2
echo $field3
echo $field4
echo $field5
echo $field6
 
#pattern=$field1" "$field2" "$field3
#echo $pattern
LEN=`expr length "$field3"`
echo $LEN
if [ $LEN -eq 1 ]; then
 
#pattern=$field1" "$field2" "$field3
echo "perl -pe 's/[\d\.]+/localtime($&)/e' access.log|grep '$field1
$field2 $field3'|grep '$field6'">extrToday
bash extrToday > Today-Squid-Accessed-Log
fi
if [ $LEN -eq 2 ]; then
#pattern=$field1" "$field2" "$field3
echo "perl -pe 's/[\d\.]+/localtime($&)/e' access.log|grep '$field1
$field2 $field3'|grep '$field6'">extrToday
bash extrToday > Today-Squid-Accessed-Log
fi
done
保存退出,执行刚建立的shell你就可以查看了 Today-Squid-Accessed-Log文件了哈哈大功告成!
 
----------------------------------end

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