为什么 cron 在日志文件名后添加问号

为什么 cron 在日志文件名后添加问号

我已经使用 crontab 创建了 cron 任务,但是在日志文件名末尾出现问号。

*/4 * * * * /usr/bin/php /path_to_cron/queue.php > /path_to_log_file/queue.txt

有什么方法可以读取它吗?创建的文件末尾有问号,例如queue.txt?

我尝试过更改 cron 编辑器,但没有帮助

我可以看到crontab -l | cat -tve每个任务后都有^M$一个日志文件名。

答案1

正如 stevieb 在上面的评论中提到的那样,你似乎有一个回车在你的 crontab 行的末尾。

以下是使用编辑器 vi 删除它的方法。以下命令将打开 crontab 以在 vi 中进行编辑:

VISUAL=$(which vi) EDITOR=$(which vi) crontab -e

现在输入:%s/\r$//并按 Enter。这样应该会删除行尾的所有回车符。然后:wq再次输入,然后按 Enter。这样应该会保存 crontab 并退出编辑器。

答案2

这对我有用。

^M看到的是额外的回车来自 Microsoft Windows 格式。您可以使用实用程序将回车符从 DOS 格式转换为 Unix 格式来消除它dos2unix

下面是转换所有用户的 crontab 的示例:

sudo dos2unix /var/spool/cron/crontabs/*

参考

相关内容