Ron*_*aby 3 linux ubuntu logrotate
我为我们的 docker 日志创建了一个 log-rotate 选项,它工作正常。这是配置文件
*root@aerogear:/var/lib/docker/containers/b8da13f8dc6cb642959103c23db2a02ef2c7291ae5f94625a92ac9329db1647e# cat /etc/logrotate.d/docker-container
/var/lib/docker/containers/*/*.log {
rotate 7
hourly
compress
size=100M
missingok
delaycompress
copytruncate
}*
Run Code Online (Sandbox Code Playgroud)
看来每小时 logrotate 工作正常。但由于一些错误,该日志文件增加到了 18G,因为该size=100M规则在这种情况下不起作用。您知道其中的具体原因吗?
size。100M,那么您应该使用maxsize而不是size。所以你应该尝试maxsize 100M而不是size=100M.
正如罗南所说,size和hourly是“矛盾的”。可以使用其中之一,但很可能其中一个具有优先权,因此您需要maxsize改为使用。
下一个:
通常,logrotate 作为日常 cron 作业运行。它不会在一天内多次修改日志,除非该日志的标准基于日志的大小并且 logrotate 每天运行多次,或者除非使用
-f或选项。--force(来自 logrotate 手册页)
在标准 Ubuntu 安装上,logrotate每天运行一次。如果你查看 cron 安装,你会在目录logrotate下看到cron.daily:
prompt$ ls -l /var/cron.daily
...
-rwxr-xr-x 1 root root 372 May 6 2015 logrotate
...
Run Code Online (Sandbox Code Playgroud)
并且下面没有任何内容cron.hourly:
prompt$ ls -l /var/cron.hourly
(nothing)
Run Code Online (Sandbox Code Playgroud)
这表明hourly设置不会比默认设置上的设置logrotate做出更多响应。daily当然,您可以更改它并logrotate每小时运行一次甚至每分钟运行一次(在最后一种情况下,您需要一个 crontab root)。但默认情况下,maxsize带有hourly或daily设置的文件没有用,因为无论大小如何,文件每次都会旋转。
还有一些版本的logrotate参数maxsize不起作用。在新版本中这不应该是问题。
正如罗南提到的,=选项和价值之间没有任何符号。