为什么这个 CRON 无法执行?

为什么这个 CRON 无法执行?
$ crontab -l
#
# m h  dom mon dow   command

SHELL=/bin/bash

* * * * * (/usr/bin/curl -s -XPOST http://internal.ip -H 'Content-type: application/json' -d 'data')

$ ls -l /usr/bin/curl
-rwxr-xr-x 1 root root 123336 Jan 29  2012 /usr/bin/curl

$ uname -a
Linux machine 2.6.32-5-amd64 #1 SMP Mon Jan 16 16:22:28 UTC 2012 x86_64 GNU/Linux

$ cat /etc/debian_version
6.0.4

但是命令没有执行,我看到以下内容/var/log/syslog

Nov 29 20:29:01 machine /USR/SBIN/CRON[28580]: (CRON) error (grandchild #28582 failed with exit status 1)

完全相同的命令,直接从终端运行时,可以正常工作:

$ (/usr/bin/curl -s -XPOST http://internal.ip -H 'Content-type: application/json' -d 'data')
{}

我尝试谷歌搜索,但我所能找到的只是命令路径必须有效(确实有效,我设置了绝对路径)并且 crontab 末尾必须有一个新行(确实有)。有什么想法吗?

答案1

crontab -l 的输出中不应该有 SHELL=/bin/bash。
运行

crontab -e

并从 crontab 中删除 SHELL=/bin/bash。

相关内容