logrorate:error:行必须以关键字或文件名开头(可能是双引号)

Eri*_*rik 8 ubuntu logrotate

我的iptables有以下logrorate配置:

/var/log/iptables.log {
        daily
        missingok
        rotate 3
        compress
        notifempty
        delaycompress
        postrotate
        /usr/sbin/service rsynclog restart > /dev/null
        endscript
}
Run Code Online (Sandbox Code Playgroud)

当我尝试检查文件语法检查时出现以下错误:

sudo logrotate -vf /etc/logrotate.d/iptables

reading config file iptables
reading config info for /var/log/iptables.log 
error: iptables:1 lines must begin with a keyword or a filename (possibly in double quotes)
Run Code Online (Sandbox Code Playgroud)

我的配置文件有什么问题?

bir*_*ire 10

您应该能够Unix在编辑器中以格式保存文件.

如果你想从终端解决这个问题,这里有很多建议:

https://superuser.com/questions/52044/convert-crlfs-to-line-feeds-on-linux https://superuser.com/questions/156516/is-there-a-bash-command-to-convert -rn-to-n http://www.cyberciti.biz/faq/howto-unix-linux-convert-dos-newlines-cr-lf-unix-text-format/

你可以试试这个:

dos2unix -b /etc/logrotate.d/iptables
Run Code Online (Sandbox Code Playgroud)

哪里-b代表备份.

或者自己创建一个备份:

cp /etc/logrotate.d/iptables /etc/logrotate.d/iptables.bak
Run Code Online (Sandbox Code Playgroud)

然后尝试:

tr -d '\r' < /etc/logrotate.d/iptables > /etc/logrotate.d/iptables
Run Code Online (Sandbox Code Playgroud)

上面的链接中有很多其他建议.

  • 在 Sublime 中是视图 -&gt; 行结尾。 (2认同)