清除大的Apache域日志

我有一个问题,Apache日志在多台服务器(Linux CentOS 5)上增长不成比例…我最终会完全禁用日志logging,但现在我需要快速修复硬盘空间。

我已经尝试使用echo " " > /path/to/log.log* > /path/to/log.log但是它们花费的时间太长,几乎崩溃了服务器,因为日志大到100GB

删除文件的工作很快,但我的问题是,它会导致一个问题,当我重新启动Apache。 我的服务器是活的,充满了用户,所以我不能让他们崩溃。

你的帮助表示赞赏。

Solutions Collecting From Web of "清除大的Apache域日志"

使用truncate命令

 truncate -s 0 /path/to/log.log 

从长远来看,您应该使用logrotate来防止日志失控。

尝试这个:

 cat /dev/null > /path/to/log.log 
  mv /path/to/log.log /path/to/log.log.1 

这样做是为了你的访问,错误,如果你真的这样做,你重写日志。 这不会影响* nix上的Apache,因为该文件是打开的。 然后重新启动Apache。 是的,我知道我说重启,但这通常需要一秒钟左右,所以我怀疑任何人会注意到 – 或在网络上责怪它。 重新启动的Apache将运行一组新的日志文件。

根据您当前的日志,您需要至少保留最近3个月的错误日志和1个月的访问日志,但是请查看您的体积来确定错误和访问日志的每周粗略数量。 不要截断旧文件。 如果有必要做一个很好的尾巴管道压缩这些档案。 如果你想使用--bytes=nnG选项分割使用一个循环做一个tail | head | gzip。 好的,你会分开奇数行,但是这比按照你的建议去删除更好。

当然,你可以按照你和别人的建议删除这个地段,但是如果你意识到这个地址最近被黑了,你该怎么办呢? “对不起,太晚了,我删除了证据!”

然后为了上帝的缘故,实施一个logrotate政权。