在Ubuntu中根据文件大小旋转apache日志

我的服务器上有三个站点,他们的日志(Apache日志)位于它们的根文件夹中,不在/ var / log中。 我需要一个脚本,根据它们的文件大小来调整access_log和error_log,例如,当文件大小超过1G时,将它们旋转。

服务器的操作系统是Ubuntu。

我有一个shell编程的基本技能,但在学习方面有很好的天赋;)你能帮我解决这个问题吗?

logrotate可以configuration为仅在日志超过特定大小时才进行轮询,请参阅minsize选项。 通常logrotate每天都在运行,如果你想在日志文件大概是1GB的时候轮换,你可能需要一个脚本来监视日志文件,并在超出限制时触发logrotate。

或者,您可以坚持每日更小的日志文件的旋转,但有一个postrotate脚本,将旋转的日志连接成1GB的数据块。

你可以使用managelogs 。
达到限制时会自动旋转日志。
它还具有其他简洁的function,如直接写入压缩文件,保存大量的存档文件等。