我如何保留更多 auth.log 文件?

我如何保留更多 auth.log 文件?

我想在 /var/log/auth.log 中保留超过 5 个默认日志文件。我需要进行哪些更改才能保留其中的 x 个?

答案1

这是由 完成的logrotate,它作为一项日常cron工作,检查其配置文件中需要轮换、压缩、删除的日志文件,并采取必要的措施。

对于/var/log/auth.log,它实际上是一个rsyslog托管文件,因为rsyslog它将所有身份验证信息(authauthpriv设施)都转储到其中(conf 文件:/etc/rsyslog.d/50-default.conf), 的相关配置文件logrotate/etc/logrotate.d/rsyslog

在我的 14.04 上包含:

/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/debug
/var/log/messages
{
        rotate 4
        weekly
        missingok
        notifempty
        compress
        delaycompress
        sharedscripts
        postrotate
                reload rsyslog >/dev/null 2>&1 || true
        endscript
}

所以/var/log/auth.log正在通过此配置进行旋转。

要修改行为以保留所需数量的轮换文件,您可以在文件名声明后面的部分将rotate参数更改为所需的值(任何正整数,0将立即删除旧文件){ ... },但这将改变所有提及的文件的行为,这可能不是所需的行为。

相反,/var/log/auth.log从那里删除,并在末尾添加以下内容,为此创建一个单独的条目:

/var/log/auth.log
{
        rotate 10
        weekly
        missingok
        notifempty
        compress
        delaycompress
        postrotate
                reload rsyslog >/dev/null 2>&1 || true
        endscript
}

上述代码将使用-ion 旋转/var/log/auth.log,,如果它为空则不旋转(),并且将保留旋转的副本,而将删除较旧的副本。weeklycompressnotifempty10

更改这些以满足您的需要,并阅读man 5 logrotate.conf

答案2

轮换时间表定义在/etc/logrotate.d/rsyslog

如果我们检查文件,我们可以看到 auth.log 是默认配置为轮换 4 次、每周计划的文件之一。请注意,相反,syslog 设置为轮换 7 次、每日计划。您可以遵循 syslog 的格式并创建一个遵循相同格式的条目,这将为您提供所需的结果,即轮换 X 和所需的计划,如每日、每周或其他。注意 postrotate 指令,因为它指定了整个日志轮换完成后发生的操作。

/var/log/syslog
{
    rotate 7
    daily
    missingok
    notifempty
    delaycompress
    compress
    postrotate
        reload rsyslog >/dev/null 2>&1 || true
    endscript
}

/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/debug
/var/log/messages
{
    rotate 4
    weekly
    missingok
    notifempty
    compress
    delaycompress
    sharedscripts
    postrotate
        reload rsyslog >/dev/null 2>&1 || true
    endscript
}

来源:

man logrotate

https://www.digitalocean.com/community/tutorials/how-to-view-and-configure-linux-logs-on-ubuntu-and-centos

相关内容