首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Logrotate复制文件

Logrotate复制文件
EN

Stack Overflow用户
提问于 2019-02-19 22:11:07
回答 1查看 264关注 0票数 0

我有一个测试应用程序,它每小时运行一次,并在每次执行时使用唯一的日志文件。要清除日志,已设置以下logrotate配置:

代码语言:javascript
复制
{
        # Daily rotation with 1 week of backlog
        daily
        rotate 7
        maxage 7
        dateext
        compress
}

第一天,日志文件被压缩(这是可以的),但是留下一个空文件,并且每隔一天文件被“清空”和压缩。这使得每个日志文件都有6个文件,这些文件填充了FS的inode表。这里有两个例子:

代码语言:javascript
复制
-rw-r--r-- 1 root root 1752 Feb 11 01:36 J20190211013601_Status.txt-20190212.gz
-rw------- 1 root root   20 Feb 12 03:33 J20190211013601_Status.txt-20190213.gz
-rw------- 1 root root   20 Feb 13 03:37 J20190211013601_Status.txt-20190214.gz
-rw------- 1 root root   20 Feb 14 03:10 J20190211013601_Status.txt-20190215.gz
-rw------- 1 root root   20 Feb 15 03:12 J20190211013601_Status.txt-20190216.gz
-rw------- 1 root root   20 Feb 16 03:36 J20190211013601_Status.txt-20190217.gz
-rw------- 1 root root   20 Feb 17 03:44 J20190211013601_Status.txt-20190218.gz
-rw------- 1 root root    0 Feb 18 03:24 J20190211013601_Status.txt

-rw-r--r-- 1 root root 1752 Feb 11 02:36 J20190211023601_Status.txt-20190212.gz
-rw------- 1 root root   20 Feb 12 03:33 J20190211023601_Status.txt-20190213.gz
-rw------- 1 root root   20 Feb 13 03:37 J20190211023601_Status.txt-20190214.gz
-rw------- 1 root root   20 Feb 14 03:10 J20190211023601_Status.txt-20190215.gz
-rw------- 1 root root   20 Feb 15 03:12 J20190211023601_Status.txt-20190216.gz
-rw------- 1 root root   20 Feb 16 03:36 J20190211023601_Status.txt-20190217.gz
-rw------- 1 root root   20 Feb 17 03:44 J20190211023601_Status.txt-20190218.gz
-rw------- 1 root root    0 Feb 18 03:24 J20190211023601_Status.txt

我如何纠正这个问题,以便在压缩后删除文件

感谢你的时间和帮助,

EN

回答 1

Stack Overflow用户

发布于 2019-06-07 04:13:57

这就是logrotate的工作原理;您的问题源于您每次运行应用程序时都使用唯一的文件名的事实。

当logrotate在每个日志上第一次运行时,它会将日志文件从"J20190211023601_Status.txt“移动到"J20190211023601_Status.txt-20190212.gz”,然后创建一个名为J20190211023601_Status.txt的新文件。

Logrotate没有固有的概念,即这些文件名是唯一的,因此永远不会再填充;它看到的只是过去轮换过的日志,因此必须根据您的配置再次轮换。

这里最简单的解决方案是为该日志记录传递nocreate指令;这将阻止创建新的日志文件并随后进行轮换,同时仍然遵守以前轮换的文件的7天期限限制:

代码语言:javascript
复制
{
  daily
  maxage 7
  dateext
  compress
  nocreate      
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54768250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档