使用 rsyslogd 手动轮换日志文件

使用 rsyslogd 手动轮换日志文件

我想使用强制日志文件轮换logrotate -f /var/log/syslog,但它只返回以下内容:

error: syslog:1 unknown option 'May' -- ignoring line
error: syslog:1 unexpected text

我知道此系统上有 rsyslogd 正在运行。如何轮换/var/log/syslog?我希望它是空的。

答案1

您无需logrotate在命令行上指定要旋转哪个文件。您向其传递一个配置文件。因此,在您的情况下,logrotate读取/var/log/syslog并尝试将其解析为配置文件并失败(因此出现错误)。

如果要旋转,/var/log/syslog则需要将其列在某个logrotate配置文件中,然后运行logrotate。如果它最近旋转过,则logrotate -f强制它再次旋转。

以下是 Debian 的一个示例/var/log/syslog

/var/log/syslog
{
        rotate 7
        daily
        missingok
        notifempty
        delaycompress
        compress
        postrotate
                invoke-rc.d rsyslog reload > /dev/null
        endscript
}

因此,您需要将其放在一个文件中,通常是/etc/logrotate.conf将其作为文件片段,/etc/logrotate.d假设您的/etc/logrotate.conf观点在那里,然后您只需运行logrotate /etc/logrotate.conf

由于你运行的是 Debian,所以这些可能都已经就绪,你实际需要做的就是运行logrotate -f /etc/logrotate.conf(注意,这将旋转每一个logrotate 中当前配置的日志)。

如果你确实只想旋转/var/log/syslog,您将需要根据/etc/logrotate.conf+的内容创建一个只执行一次日志的配置文件/etc/logrotate.d/rsyslog

相关内容