热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

apache日志文件过大解决方法

apache日志文件过大的事情我以前碰到过,就是自己未设置apache生成文件多大时自动创建文件,而一直让它记录结果日志文件到了100GB,当时删除的空间都没有了。

apache日志文件过大的事情我以前碰到过,就是自己未设置apache生成文件多大时自动创建文件,而一直让它记录结果日志文件到了100GB,当时删除的空间都没有了。

设置web服务器时,一般我们都会记录下请求的信息,以及错误的相关信息。

  1. ErrorLog "/home/zhangy/apache/www.test.com-error.log" 
  2. CustomLog "/home/zhangy/apache/www.test.com-access.log" common 

做了上面的配置,如果你不定期删除的话,我想随着时间的推移,这些日志文件能达到几个G的大小。占用资源不说,还不利于我们查看日志信息。其实对访问信息,以及错误错误只是为了帮助我们了解服务器的访问,运行情况,个人觉得只要了解近期的就OK了。

下面有2种方法可以解决这个问题

1,rotatelogs这样日志回滚的工具

用法

rotatelogs  [ -l ] logfile  [ rotationtime [ offset ]] | [ filesizeM ]

-l 使用本地时间代替GMT时间作为时间基准。注意:在一个改变GMT偏移量(比如夏令时)的环境中使用-l会导致不可预料的结果。

logfile 它加上基准名就是日志文件名。如果logfile中包含"%",则它会被视为用于strftime()的格式字符串;否则它会被自动加上以秒为单位的".nnnnnnnnnn"后缀。这两种格式都表示新的日志开始使用的时间。

rotationtime 日志文件滚动的以秒为单位的间隔时间。

offset 相对于UTC的时差的分钟数。如果省略,则假定为"0"并使用UTC时间。比如,要指定UTC时差为"-5小时"的地区的当地时间,则此参数应为"-300"。

filesizeM 指定以filesizeM文件大小滚动,而不是按照时间或时差滚动。

解决方法:

  1. ErrorLog "|/usr/local/apache2/bin/rotatelogs /home/zhangy/apache/www.test.com-error.log.%Y-%m-%d-%H_%M_%S 10M" 
  2. CustomLog "|/usr/local/apache/bin/rotatelogs /home/zhangy/apache/www.test.com-access.log 10M" commom 

当日志大小达到10M时,日志就会滚动,产生新的日志。当然你可以根据时间来进行滚动,把10M换成36000,表时日志10个小时滚动一次。

  1. [zhangy@BlackGhost apache]$ ls -tr |grep test 
  2. www.test.com-error.log 
  3. www.test.com-access.log 
  4. www.test.com-error.log.2010-11-05-14_50_00 
  5. www.test.com-access.log.1288968528 
  6. www.test.com-error.log.2010-11-05-14_48_20 
  7. www.test.com-access.log.1288968677 
  8. www.test.com-error.log.2010-11-05-14_56_40 
  9. www.test.com-error.log.2010-11-05-15_55_00 
  10. www.test.com-access.log.1288969444 

2,利用graceful启动用优雅的(graceful)方法重新启动,可以使服务器启用新的日志文件,而不丢失原来尚未写入的信息。为此,有必要等待一段时间,让服务器完成正在处理的请求,并将记录写入到原来的日志文件。下面是日志滚动和为节省存储空间而压缩旧日志的例子,其实这些日志也可以不要,看个人需要

  1. [zhangy@BlackGhost apache]$ find . -name "*phpfensi*" |xargs -i mv {} {}.bak 
  2. [zhangy@BlackGhost apache]$ sudo /etc/init.d/apache2 graceful 
  3. [zhangy@BlackGhost apache]$ sudo sleep 100 
  4. [zhangy@BlackGhost apache]$ find . -name "*.bak" |xargs -i tar czvf logbak.tar.gz {} 
  5. ./www.phpfensi.com-access.log.bak 
  6. ./www.phpfensi.com-error.log.bak 

推荐阅读
  • 本文详细探讨了在Web开发中常见的UTF-8编码问题及其解决方案,包括HTML页面、PHP脚本、MySQL数据库以及JavaScript和Flash应用中的乱码问题。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • HBase 数据复制与灾备同步策略
    本文探讨了HBase在企业级应用中的数据复制与灾备同步解决方案,包括存量数据迁移及增量数据实时同步的方法。 ... [详细]
  • 本文详细介绍了如何在Oracle VM VirtualBox中实现主机与虚拟机之间的数据交换,包括安装Guest Additions增强功能,以及如何利用这些功能进行文件传输、屏幕调整等操作。 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • 解决PHP项目在服务器无法抓取远程网页内容的问题
    本文探讨了在使用PHP进行后端开发时,遇到的一个常见问题:即在本地环境中能够正常通过CURL获取远程网页内容,但在服务器上却无法实现。我们将分析可能的原因并提供解决方案。 ... [详细]
  • Web动态服务器Python基本实现
    Web动态服务器Python基本实现 ... [详细]
  • 从CodeIgniter中提取图像处理组件
    本指南旨在帮助开发者在未使用CodeIgniter框架的情况下,如何独立使用其强大的图像处理功能,包括图像尺寸调整、创建缩略图、裁剪、旋转及添加水印等。 ... [详细]
  • 精选10款Python框架助力并行与分布式机器学习
    随着神经网络模型的不断深化和复杂化,训练这些模型变得愈发具有挑战性,不仅需要处理大量的权重,还必须克服内存限制等问题。本文将介绍10款优秀的Python框架,帮助开发者高效地实现分布式和并行化的深度学习模型训练。 ... [详细]
  • 本文总结了一次针对大厂Java研发岗位的面试经历,探讨了面试中常见的问题及其背后的原因,并分享了一些实用的面试准备资料。 ... [详细]
  • 深入理解:AJAX学习指南
    本文详细探讨了AJAX的基本概念、工作原理及其在现代Web开发中的应用,旨在为初学者提供全面的学习资料。 ... [详细]
  • 本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ... [详细]
  • 本文探讨了在Windows系统中运行Apache服务器时频繁出现崩溃的问题,并提供了多种可能的解决方案和建议。错误日志显示多个子进程因达到最大请求限制而退出。 ... [详细]
  • mysql 授权!!
    为什么80%的码农都做不了架构师?MySQL的权限系统围绕着两个概念:认证-确定用户是否允许连接数据库服务器授权-确定用户是否拥有足够的权限执 ... [详细]
author-avatar
临沂李晓楠
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有