QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1377|回复: 5

如何限制apache的Log文件的大小呢???

[复制链接]
发表于 2003-3-5 20:30:21 | 显示全部楼层 |阅读模式
如何限制apache的Log文件的大小呢???
我现在的apache/logs/目录里的log文件已经超过40多M了..有没有办法限制文件的大小呢??在httpd.conf里好像没有..

难道不成,要自己没搁一段时间就删些??
发表于 2003-3-7 01:07:27 | 显示全部楼层
利用cronolog来做log转换..

http://www.cronolog.org/

获取新的cronolog

编译.安装


把CustomLog /usr/local/apache1.3/logs/access_log common
改成
CustomLog "|/usr/local/sbin/cronolog /usr/local/apache1.3/logs/access_log_%W" common

把ErrorLog /usr/local/apache1.3/logs/error_log
改成
ErrorLog "|/usr/local/sbin/cronolog /usr/local/apache1.3/logs/error_log_%W"

注:上面的%w表示一年中的第几个星期,更多信息看man cronolog,这样每周就会有新的log了..

然后重新运行apache.用graceful参数:

/usr/local/apache/bin/apachectl graceful

用vi编辑一个简单的脚本

#!/bin/bash
find /usr/local/apache/logs/access* -mtime +31 -exec rm -f {} \;
find /usr/local/apache/logs/error* -mtime +31 -exec rm -f {} \;
/usr/local/apache/bin/apachectl graceful

这个脚本的作用是让系统自动删除一个月前修改过的文件

然后vi /etc/crontab

添加一行

* 3 * * 6 root /usr/local/apache/htdocs/ww/baksh/lograte.sh

这个表示刚才编辑的脚本在每周6的3点运行

附:crontab中五个*的含义。。。。

分  (0-59)
小時 (0-23)
日期 (1-31)
月份 (1-12)
週  (0-6)
回复

使用道具 举报

 楼主| 发表于 2003-3-7 08:57:28 | 显示全部楼层
高..

我照做看看...厉害呀.

希望能够继续指教...
回复

使用道具 举报

 楼主| 发表于 2003-3-7 09:42:30 | 显示全部楼层
ww/baksh/lograte.sh

这个是不是编译的脚本的名字???

把他放到哪个目录下好呢??比如说apache/bin下可以吗???
回复

使用道具 举报

 楼主| 发表于 2003-3-7 10:41:37 | 显示全部楼层
兄弟,我使用了系统自己带的lotatelogs来设置为一周分割一次...

但是我不知道怎么写一个脚本,让他可以每周一次,删除2周前的log...

请指教..谢谢...
回复

使用道具 举报

发表于 2003-3-7 16:24:36 | 显示全部楼层


2003年03月07日下午16时18分19秒[root@www root]# rpm -qf /etc/logrotate.d
logrotate-3.6.4-1

2003年03月07日下午16时21分28秒[root@www root]# rpm -qi logrotate-3.6.4-1
Name        : logrotate                    Relocations: (not relocateable)
Version     : 3.6.4                             Vendor: Red Hat, Inc.
Release     : 1                             Build Date: 2002年04月16日 星期二 04时27分50秒
Install date: 2002年05月08日 星期三 18时27分02秒      Build Host: porky.devel.redhat.com
Group       : System Environment/Base       Source RPM: logrotate-3.6.4-1.src.rpm
Size        : 42260                            License: GPL
Packager    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
Summary     : Rotates, compresses, removes and mails system log files.
Description :
The logrotate utility is designed to simplify the administration of
log files on a system which generates a lot of log files. Logrotate
allows for the automatic rotation compression, removal, and mailing of
log files. Logrotate can be set to handle a log file daily, weekly,
monthly, or when the log file gets to
a certain size . Normally,
logrotate runs as a daily cron job.


2003年03月07日下午16时17分26秒[root@www root]# cat /etc/logrotate.d/apache
/var/log/httpd/access_log /var/log/httpd/agent_log /var/log/httpd/error_log /var/log/httpd/referer_log {
    missingok
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
    endscript
}
2003年03月07日下午16时17分28秒[root@www root]# rpm -qf /etc/logrotate.d/apache
apache-1.3.27-2



至于如何“周期性”地删除,可以参考:

2003年03月07日下午16时18分18秒[root@www root]# cat /etc/logrotate.d/squid
/var/log/squid/access.log {
    weekly
    rotate 5
    copytruncate
    compress
    notifempty
    missingok
}
/var/log/squid/cache.log {
    weekly
    rotate 5
    copytruncate
    compress
    notifempty
    missingok
}

/var/log/squid/store.log {
    weekly
    rotate 5

    copytruncate
    compress
    notifempty
    missingok
# This script asks squid to rotate its logs on its own.
# Restarting squid is a long process and it is not worth
# doing it just to rotate logs
    postrotate
      /usr/sbin/squid -k rotate
    endscript
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-17 08:46 , Processed in 0.040427 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表