使用rsyslogd手动旋转日志文件


10

我想使用强制日志文件旋转logrotate -f /var/log/syslog,但这仅返回以下内容:

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

我知道在该系统上rsyslogd正在运行。如何旋转/var/log/syslog?我希望它是空的。

Answers:


23

您不会logrotate在命令行上告诉要旋转的文件。您将配置文件传递给它。因此,在您的情况下,logrotate正在读取/var/log/syslog并尝试将其解析为配置文件并失败(因此会出现错误)。

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

这是/var/log/syslog来自Debian 的示例条目,

/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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.