Linux 清除大型Apache域日志

Linux 清除大型Apache域日志,linux,apache,Linux,Apache,我遇到了一个问题,Apache日志在几个服务器(Linux CentOS 5)上增长过快。。。我最终将完全禁用日志记录,但目前我需要一个快速修复程序来回收硬盘空间 我尝试过使用echo”“>/path/to/log.log或*>/path/to/log.log,但它们花费的时间太长,几乎会使服务器崩溃,因为日志大达100GB 删除文件的速度很快,但我的问题是,当我重新启动apache时,它会导致问题吗。我的服务器是活的,而且充满了用户,所以我不能使它们崩溃 非常感谢您的帮助。请使用该命令 从长远

我遇到了一个问题,Apache日志在几个服务器(Linux CentOS 5)上增长过快。。。我最终将完全禁用日志记录,但目前我需要一个快速修复程序来回收硬盘空间

我尝试过使用
echo”“>/path/to/log.log
*>/path/to/log.log
,但它们花费的时间太长,几乎会使服务器崩溃,因为日志大达100GB

删除文件的速度很快,但我的问题是,当我重新启动apache时,它会导致问题吗。我的服务器是活的,而且充满了用户,所以我不能使它们崩溃

非常感谢您的帮助。

请使用该命令

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

尝试以下方法:

cat /dev/null > /path/to/log.log
如果你真的在prod上这么做,你就重写日志。 这不会影响Apache on*nix,因为文件是打开的。然后重新启动Apache。是的,我知道我说了重启,但这通常需要一秒钟左右的时间,所以我怀疑是否有人会注意到——或者将责任归咎于网络。重新启动的Apache将使用一组新的日志文件运行

就您当前的日志而言,IMO您需要保留至少最近3个月的错误日志和1个月的访问日志,但请查看您的volumetrics,以确定每周错误和访问日志的大致数量。不要截断旧文件。如有必要,做一个很好的尾部管道,将其中的
gzip-c
连接到归档文件。如果您想分割数据,请使用
--bytes=nnG
选项,使用一个做尾|头| gzip的循环。好的,你会在单数行中拆分,但这比你建议的删除地块要好

当然,你可以按照你和其他人的建议删除该地段,但如果你意识到该网站最近遭到黑客攻击,你会怎么做?“对不起,太晚了,我已经删除了证据!”


然后,看在上帝的份上,执行一个logrotate机制。

/path/to/log.log
将使文件为空。您永远不应该禁用日志记录。总有一天你会需要这些信息的。只要打开logrotate。它将解决这个问题,同时仍然为您提供最新的统计和取证日志。您似乎完全知道您在说什么,但只是重申一下,这个truncate命令不应该需要大量CPU来截断文件。。。正如前面提到的那样,以前的尝试不太令人愉快。。。谢谢你的帮助。
cat /dev/null > /path/to/log.log
 mv /path/to/log.log /path/to/log.log.1