为什么CentOS上的cron会抱怨回车?

我有一个CentOS 6机器我想运行一些cronjobs和工作失败抱怨行结束回车(^ M)。 示例/var/log/cron条目:

 CROND[20344]: (root) CMD (/usr/local/bin/php /usr/local/bin/somescript.php >/dev/null 2>&1^M) CROND[20213]: (root) CMD (/usr/local/bin/php /usr/local/bin/somescript.php^M) 

所有这些在CentOS 5.x上运行良好,看起来像是一个CentOS 6的东西。 有什么build议么?

使用使用正确行组织的编辑器。 快速修复是

 export EDITOR=vi crontab -e :1,$s/^V^M//g :wq 

其中^V^MCrtl + V Crtl + m

你怎么编辑crontab文件? 是否使用任何Windows系统,记事本等复制?

这些不是UNIX linebreaks。 ^ M是一个硬回车(有时在使用转义序列时被称为\ r).Windows行结束符是\ r \ n(回车符,换行符),而UNIX行结束符只是\ n。

如果您在任何时候使用ASCII模式FTP或Windows文本编辑器来获取新的CentOS系统上的文件内容,那很可能是问题所在。

安装dos2unix并将其转换为Unix行结尾:

 # dos2unix /var/spool/cron/root