如何修复安装新的 crontab 时出现的“Bad moment”错误

如何修复安装新的 crontab 时出现的“Bad moment”错误

我已经安装了全新的 Ubuntu 16.04 来替换我的 Windows 操作系统。

我正在尝试设置 cronjobs 以通过 Ampps softaculous 运行 mangento 2.1。该软件已成功安装(ampps 和 magento),并且运行良好。我正在尝试设置 crontab,但似乎第一行第二行有错误。

这是我尝试添加到 Ampps 用户的 crontab 中的内容,使用命令sudo crontab -e -u ampps

* * * * * /usr/local/ampps/php-5.6/etc
/usr/local/ampps/www/localshop.dev/bin/magento cron:run | grep -v "Ran jobs by schedule" >> /usr/local/ampps/www/localshop.dev/var/log/magento.cron.log
* * * * * /usr/local/ampps/php-5.6/etc
/usr/local/ampps/www/localshop.dev/update/cron.php >> /usr/local/ampps/www/localshop.dev.dev/var/log/update.cron.log
* * * * * /usr/local/ampps/php-5.6/etc
/usr/local/ampps/www/localshop.dev.dev/bin/magento setup:cron:run >> /usr/local/ampps/www/localshop.dev.dev/var/log/setup.cron.log

我究竟做错了什么?

我按照 magento 2.1 管理员中的错误消息操作,该错误消息提到此故障排除链接适用于 2.0 版本本配置指南

答案1

每个 crontab 行必须以应运行命令的时间开头,然后是命令本身。一般格式为:

Min Hour Day Month DayOfWeek Command

command因此,如果要在每周日 10:15运行,您需要执行以下操作:

15 10 * * 0 command

我不确定你的命令是什么,但你有一些行没有以时间定义开头。我不明白这样的行是什么:

* * * * * /usr/local/ampps/php-5.6/etc

这是有时间但没有命令。你给它一个目录。像这样的行有命令但没有时间:

/usr/local/ampps/www/localshop.dev/bin/magento cron:run | grep -v "Ran jobs by schedule" >> /usr/local/ampps/www/localshop.dev/var/log/magento.cron.log

因此,请确保遵循格式,这样就没问题了。如果不清楚,请编辑您的问题并解释您要运行的命令。

答案2

根据我以前的经验,这是由于第一个 cron 行之前的 CR/LF 字符造成的(因为它是从 Windows 而不是直接从 Linux 编辑的)。我注意到了并从十六进制编辑器中删除了该字符。

答案3

如果您尝试将 cron 变量重置为空值,也可能会发生此类错误,如下所示:

[email protected]
* * * * * do some stuff with error reporting
MAILTO=
* * * * * do another stuff too verbose to receive emails

请注意第 3 行后面的空行。MAILTO=这将导致出现以下消息:

crontab: installing new crontab
"/tmp/crontab.AvDwzo":3: bad minute
errors in crontab file, can't install.
Do you want to retry the same edit? 

重置变量的正确方法MAILTO是使用空引号,如下所示:

MAILTO=''

希望这可以帮助。

答案4

就我的情况而言(似乎也是 OP 的情况),问题是我在要执行的命令中有一个新行,如下所示

5 0 * * * some_command -some_param
-another_param

当然,溢出的行被解释为一个新的 cron 条目,并且 cron 正确地抱怨行不是有效的分钟标识符。

相关内容