发新话题
打印

[Linux&Unix] linux又来了,,请教

linux又来了,,请教

想做一个apache的log定时保存的功能,,

希望实现的效果是,,每天的log保存成一个文件,,如:20080508.log

每个月一个文件夹,, 如:文件夹200805的下面存放了20080501.log ------ 20080530.log



目前进展。。,,

apache的httpd.conf文件内,,指定了access的路径,,和log文件的Formate格式,,

cron.dailly下,,指定了每天一次运行pan.log文件,,

pan.log文件内容是 tar -zcvf /home/rq.log.tar.gz  /home/access

这样一来,,会每天保存一次,,

但不会按照日期分文件,,更没有想要的按月份的文件夹,,

请问有什么好办法,,??
唉,,怎一声叹息了得,,

TOP

linux不熟,据说2个办法

1 开源组件使用 cronolog或别的

2 自己写个shell,每天定时执行(通过/etc/crontab –e来定时 )把现在的log保存成带日期信息的

TOP

把现在的log保存成带日期信息的,,

这部分该怎么做呢,,

刚才试了一下 %y%m%d.log 的形式保存 ,,

不起作用,,
唉,,怎一声叹息了得,,

TOP

Life is like a box of chocolates: you never know what you're gonna get.

TOP

回复 #3 wallgecko 的帖子

111 --》20080509.log

     cp 111 $(date +%Y%m%d).log

然后清空111

      >111

TOP

嗯,,这个我可能用不着,,不过被他启发了一下,,有了新的想法,,

谢谢了,,!!
唉,,怎一声叹息了得,,

TOP

引用:
原帖由 stone 于 2008-5-9 21:33 发表
111 --》20080509.log

     cp 111 $(date +%Y%m%d).log

然后清空111

      >111
呵呵,,石头,,你这招貌似很实用阿,,

应该好使,,周一去试试就知道了,,

收了,,多谢!!!
唉,,怎一声叹息了得,,

TOP

问题基本解决,,

解决办法,,用了THROW建议的方法,,使用apache自己的rotatelogs功能,,

在/etc/httpd/conf/httpd.conf 文件中,,

加一行,,CustomLog "|/usr/local/apache2/bin/rotatelogs /var/log/apache/Y%m%d.log 86400 540" combined

这样便可以每天保存一个log文件,,不需要清空,,


但是按月保存文件夹的功能还没实现,,

我试过CustomLog "|/usr/local/apache2/bin/rotatelogs /var/log/apache/Y%m/Y%m%d.log 86400 540" combined

但是报错,,无法自动创建文件夹,,

查了一下,,用cronlog可以实现,,但公司不让用,,理由是,,需要另外下载的就不用,,

今天做到这里就停滞了,,,


再次万分感谢THROW的重要建议和stone的提示,,!!
唉,,怎一声叹息了得,,

TOP

发新话题