você não deve ter SHELL = / bin / bash na saída de crontab -l.
correr
crontab -e
e remova SHELL = / bin / bash do crontab.
$ 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
Mas o comando não é executado e vejo o seguinte em /var/log/syslog
:
Nov 29 20:29:01 machine /USR/SBIN/CRON[28580]: (CRON) error (grandchild #28582 failed with exit status 1)
O mesmo comando, quando executado diretamente no terminal, funciona bem:
$ (/usr/bin/curl -s -XPOST http://internal.ip -H 'Content-type: application/json' -d 'data')
{}
Eu tentei googling, mas tudo que eu pude encontrar foi que o caminho do comando deve funcionar (é, eu defino um caminho absoluto) e que deve haver uma nova linha no final do crontab (existe). Alguma idéia?
você não deve ter SHELL = / bin / bash na saída de crontab -l.
correr
crontab -e
e remova SHELL = / bin / bash do crontab.