![](/img/trans.png)
[英]Cron job does not run, but command is OK when run manually at shell
[英]Cron job does not run
以下是crontab中的条目:
MAILTO=abc@gmail.com
45 14 * * * /home/user/simple.sh
我也在simple.sh
上做了chmod +x
但是crontab没有运行,它甚至没有发送电子邮件。
pgrep cron
显示了Id。 我也试过弹跳crond。 但没有运气! 有人可以指出这里的错误
simple.sh脚本是:
#! /bin/bash
echo hello
谢谢
由于您在cron作业脚本中执行echo
,因此需要在某处捕获其输出。
你的shebang
和文件模式(使用chmod +x
)都没问题,所以这里不是问题,没有/bin/sh
运行应该可以正常工作。
尝试使用以下命令查看cron.log
文件中的输出(每分钟运行一次)
* * * * * /home/user/simple.sh >> /home/user/cron.log
请注意,cron作业在单独的子进程shell中运行,环境减少,因此它的输出在终端上不可见。
关于发送电子邮件 - 您需要为cron守护程序配置一些邮件包(如postman
, mutt
等)以发送错误邮件。
不要使用相对路径,而应使用绝对路径。 另外,指示运行脚本的二进制文件,即/bin/sh
(或来自which sh
):
45 14 * * * /bin/sh /path/to/script/simple.sh
也许你的.sh脚本的第1行不应该有空格:
#! /bin/bash
至
#!/bin/bash
虽然我可以理解为什么它仍然可以在交互式shell中调用时工作( #只能注释掉其余部分)。
不过,我猜最糟糕的是它只是忽略了那条线并继承了cron对/ bin / sh的解释器
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.