sed 切割nginx日志文件问题

 

问题:

使用

sed -n "/04\/Apr\/2016/,/05\/Apr\/2016/"p access.log > test.log  

这句话无论如何也没办法成功,但是

sed -n "/05\/Apr\/2016/ ,$"p access.log >  test.log  

就能成功截取。

  • 最后发现sed的参数其实是 查找 已经存在的文字,(重要)
  • 由于今天下午(4月5号)清理了一次日志,当然就不会存在有“/04\/Apr\/2016/”的字符串存在的行
  • 第一句截不出东西的命令,第一个参数“/04\/Apr\/2016/”是起始,第二个参数“/05\/Apr\/2016/”是结束,sed执行到第一个“/05\/Apr\/2016/”就停下了,所以什么都没截出来;
  • 第二个能够成功的命令,起始是“/05\/Apr\/2016/”,结束是“$"(就是文件结尾),当然能截下文件
结论:
  • 既然是每周截取一次,截取后清空日志文件,那就直接复制日志文件去该去的目录,然后goaccess好了。。。。。。。。

 

最终文件:

 

```

1 #!/bin/bash
2
3 monday_year=$(date -d 'last monday' +"%Y")
4 f_monday_month=$(date -d 'last monday' +"%m")
5 monday_day=$(date -d 'last monday' +"%d")
6
7 now_year=$(date -d 'now' +"%Y")
8 f_now_month=$(date -d 'now' +"%m")
9 now_day=$(date -d 'now' +"%d")
10
11 #filename_day=$monday_year$f_now_month$monday_day'-'$now_year$f_now_month$now_day
12 filename_day=$now_year$f_now_month$now_day
13 echo $filename_day
14
15 echo 1
16 #access
17 if test -s /usr/local/nginx/logs/access.log ;
18 then
19 filename=$filename_day
20 cp /usr/local/nginx/logs/access.log /var/www/html/logs_backup/access/$filename.log
21 zcat -f /var/www/html/logs_backup/access/$filename.log | /usr/local/bin/goaccess -a -p /root/.goaccessrc > /var/www/html/logs_html/access/$filename.html
22 fi
23
24 echo 2
25 #mantis
26 if test -s /usr/local/nginx/logs/mantis.log;
27 then
28 filename=$filename_day
29 cp /usr/local/nginx/logs/mantis.log /var/www/html/logs_backup/mantis/$filename.log
30 zcat -f /var/www/html/logs_backup/mantis/$filename.log | /usr/local/bin/goaccess -a -p /root/.goaccessrc > /var/www/html/logs_html/mantis/$filename.html
31 fi
32
33 echo 3
34 #blog
35 if test -s /usr/local/nginx/logs/blog.log;
36 then
37 filename=$filename_day
38 cp -f /usr/local/nginx/logs/blog.log /var/www/html/logs_backup/blog/$filename.log
39 zcat -f /var/www/html/logs_backup/blog/$filename.log | /usr/local/bin/goaccess -a -p ~/.goaccessrc > /var/www/html/logs_html/blog/$filename.html
40 fi
41
42 echo 4
43 log_report/goaccess_log.sh

```

转载于:https://www.cnblogs.com/JohannaFeng/p/5642058.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值