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

asw*_*ine 2 log

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

hee*_*ayl 7

这是由 完成的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
}
Run Code Online (Sandbox Code Playgroud)

所以/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
}
Run Code Online (Sandbox Code Playgroud)

上面将使用-ion旋转/var/log/auth.log, weekly,compress如果它是空的 ( notifempty),则不会10旋转,并且将保留旋转的副本,并且将删除旧的副本。

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