我想使用强制日志文件轮换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
。