我是 Linux/CentOS 新手,现在遇到了一个小问题。
我的 CentOS7 服务器每天通过 Logrotate 记录所有邮件日志,并将它们移动到文件夹/var/log/old_maillogs
. 现在日志以类似于以下的名称保存:
邮件日志-20230721
我希望根据他们的年龄改变他们的名字,这样如果日志是一天前的,那么它的名字是:
邮件日志-1
一天后,文件名更改为:
邮件日志-2
等等。
这是否可能,如果可以,让它发挥作用的最明智的方法是什么?我读过很多关于每天执行一次的脚本的内容,但话又说回来,我如何编写脚本,以便它识别文件夹中有多少日志?
这是我当前的配置:
/var/log/maillog{
daily
rotate 365
postrotate
Systemctl restart rsyslog.service
endscript
mailfirst
olddi /var/log/old_maillog
}
请参阅 logrotate手册页选项“开始计数”
开始计数
正如@asktyagi 已经说过的。正确使用的参数是“开始计数”。
最初它对我不起作用,那是因为我没有禁用“对旋转文件使用数据扩展名”的参数,该参数称为
nodateext
.所以工作配置如下所示:
此配置每天保存日志并将扩展名重命名为数字,这相当于日志的年龄。
所以在第一天它被称为 -
maillog.1
第二天它被称为 -
maillog.2
等等。