每天使用 logrotate 清除日志文件
Wipe clean logfile on daily basis with logrotate
我想每天清理一个 Docker 容器日志(不需要 store/archive 数据)。我在 /etc/logrotate.d
中创建了一个名为 docker
的文件,并将以下内容放入其中:
/var/lib/docker/containers/*/*.log {
rotate 0 #do not keep archives
daily
missingok
copytruncate #continue working in the same log file
}
好吧,但它不起作用。所以,显然我的 logrotate 配置中有些地方不对。 AFAIK,我不需要为此设置 crontab。我的配置错了吗?有什么我遗漏的吗?
有没有办法 运行 和测试 logrotate
而无需等待一天?
rotate 0
在这里是多余的,0
是轮换的默认值,也就是说,没有轮换,旧的被删除。
您可以使用
对其进行测试
$ logrotate -f /etc/logrotate.d/docker
最好先放入 rotate 1
进行测试,然后再放入 rotate 0
以检查 logrotate
是否正常运行。
如果 logrotate
安装正确,那么 /etc/cron.daily/logrotate
中会有一个 crontab
条目。此文件读取配置文件 /etc/logrotate.conf
,其中包括 /etc/logrotate.d
下的所有内容
HTH
我想每天清理一个 Docker 容器日志(不需要 store/archive 数据)。我在 /etc/logrotate.d
中创建了一个名为 docker
的文件,并将以下内容放入其中:
/var/lib/docker/containers/*/*.log {
rotate 0 #do not keep archives
daily
missingok
copytruncate #continue working in the same log file
}
好吧,但它不起作用。所以,显然我的 logrotate 配置中有些地方不对。 AFAIK,我不需要为此设置 crontab。我的配置错了吗?有什么我遗漏的吗?
有没有办法 运行 和测试 logrotate
而无需等待一天?
rotate 0
在这里是多余的,0
是轮换的默认值,也就是说,没有轮换,旧的被删除。
您可以使用
对其进行测试$ logrotate -f /etc/logrotate.d/docker
最好先放入 rotate 1
进行测试,然后再放入 rotate 0
以检查 logrotate
是否正常运行。
如果 logrotate
安装正确,那么 /etc/cron.daily/logrotate
中会有一个 crontab
条目。此文件读取配置文件 /etc/logrotate.conf
,其中包括 /etc/logrotate.d
HTH