以下是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
postman
,mutt
等)以便cron守护程序发送错误邮件。不要使用相对路径,而应使用绝对路径。另外,请指定运行脚本的二进制文件,即/bin/sh
(或者来自which sh
的任何内容):
45 14 * * * /bin/sh /path/to/script/simple.sh
#! /bin/bash
到
#!/bin/bash
虽然我可以理解为什么在交互式 shell 中调用时它仍然有效(# 可以仅注释掉该行的其余部分)。
不过,最坏的情况下,它只会忽略那一行并继承 cron 的解释器 /bin/sh。
simple.sh
中添加了shebang
吗?此外,这个 shell 脚本是做什么的?它能在命令行上手动运行吗? - Anshul Goyal#! /bin/bash
。它只是一个回声。就是想让cron运行。 - nishsimple.sh
文件中。你如何使用echo
命令?你将输出重定向到其他文件了吗?首先,你可以尝试45 14 * * * /home/user/simple.sh >> /home/user/cron.log
,然后告诉我是否将适当的内容输出到了cron.log文件中。 - Anshul Goyal* * * * * /home/user/simple.sh >> /home/user/cron.log
? - Anshul Goyal