我想使用logrotate -f /var/log/syslog来强制日志文件的旋转,但是它只是返回音调:
error: syslog:1 unknown option 'May' -- ignoring line error: syslog:1 unexpected text
我知道在这个系统上rsyslogd正在运行。 如何旋转/var/log/syslog ? 我希望它是空的。
你不告诉logrotate在命令行上旋转哪个文件。 你传递一个configuration文件。 所以在你的情况下, logrotate读取/var/log/syslog并试图parsing它作为configuration文件和失败(因此你的错误)。
如果你想旋转/var/log/syslog它需要在某个地方的logrotateconfiguration文件中列出,而你只需要运行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.conf中的一个文件片段,假设/etc/logrotate.conf指向那里,然后运行logrotate /etc/logrotate.conf 。
由于你运行的是Debian,所以这可能全部到位了,而你所需要做的就是运行logrotate -f /etc/logrotate.conf (注意,这将会旋转当前在logrotate中configuration的所有日志)。
如果你真的只想旋转/var/log/syslog ,你需要根据/etc/logrotate.conf + /etc/logrotate.d/rsyslog的内容创build一个configuration文件。