我想压缩一些名称格式为 abc.log.yyyy-MM-dd 的日志文件,然后在 x 天后删除压缩的日志文件 (abc.log.yyyy-MM-dd.gz)。我不想logrotate 旋转文件(即创建新文件),我只希望它在x天后压缩并删除压缩文件。
我尝试使用此模式仅压缩文件:
压缩文件:
/var/log/management/abc.log.*[!.gz]
su x y
daily
nocreate
missingok
compress
dateext
dateformat
rotate 6 #If I don't provide this parameter, files are deleted as soon as they
are compressed
}
To delete compressed files after x days:
/var/log/management/abc.log.*.gz* {
su x y
daily
rotate x
maxage x
}
Run Code Online (Sandbox Code Playgroud)
执行2次logrotate后,结果如下:
abc.log.2019-05-20。gz.1.gz
abc.log.2019-05-21.gz.1
abc.2019-05-22.gz
压缩和旋转的文件将被再次压缩。
有人可以告诉应该使用的文件名的确切正则表达式模式吗
代替
/var/log/management/abc.log.*[!.gz]
Run Code Online (Sandbox Code Playgroud)
和
/var/log/management/abc.log.*[0-9]
Run Code Online (Sandbox Code Playgroud)
dateext与空的组合dateformat是避免文件名中出现额外数字的好方法!
当其他人找到这个答案时,下一行很重要:
nocreate
Run Code Online (Sandbox Code Playgroud)
如果您想在 60 天后删除这些文件,请使用
postrotate
find /var/log/management -name "abc.log.*gz" -type f -mtime +60 -exec rm -f {} \;
endscript
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6805 次 |
| 最近记录: |