manually rotating logfile with rsyslogd
You don't tell logrotate
which file to rotate on the command line. You pass it a configuration file. So in your case, logrotate
is reading /var/log/syslog
and trying to parse it as a config file and failing (hence your errors).
If you want to rotate /var/log/syslog
it needs to be listed in a logrotate
config file somewhere, and you just run logrotate
. If it rotated recently, then logrotate -f
to force it to do it again.
Here's an example entry for /var/log/syslog
from Debian,
/var/log/syslog
{
rotate 7
daily
missingok
notifempty
delaycompress
compress
postrotate
invoke-rc.d rsyslog reload > /dev/null
endscript
}
So, you need that in a file, normally either /etc/logrotate.conf
or as a file snippet in /etc/logrotate.d
assuming your /etc/logrotate.conf
points there, and then you just run logrotate /etc/logrotate.conf
.
Since you're running Debian, this is probably all in place, and all you need to actually do is run logrotate -f /etc/logrotate.conf
(note, this will rotate every log currently configured in logrotate).
If you truly only want to rotate /var/log/syslog
, you will need to create a config file that just does that one log, based on the content of /etc/logrotate.conf
+ /etc/logrotate.d/rsyslog
.