4

以下是 crontab 中的条目:

MAILTO=abc@gmail.com
45 14 * * * /home/user/simple.sh

我也做过chmod +x但是simple.shcrontab 没有运行,它甚至没有发送电子邮件。

pgrep cron显示一个 ID。我也试过弹跳crond。但没有运气!有人可以在这里指出错误吗

simple.sh 脚本是:

#! /bin/bash
echo hello

谢谢

4

3 回答 3

6

由于您echo在 cron 作业脚本中执行操作,因此您需要在某处捕获其输出。

您的shebang和文件模式(使用chmod +x)都可以,所以这些不是这里的问题,并且没有运行/bin/sh应该可以正常工作。

尝试使用以下命令查看cron.log文件中的输出(每分钟运行一次)

* * * * * /home/user/simple.sh >> /home/user/cron.log

请注意,cron 作业在单独的子进程 shell 中运行,环境减少,因此它的输出不会在您的终端上可见。

关于电子邮件的发送 - 您需要为 cron 守护进程配置一些邮件包(例如postmanmutt等)以发送错误邮件。

于 2013-11-14T05:40:03.080 回答
4

不要使用相对路径,而是使用绝对路径。另外,指出运行脚本的二进制文件,即/bin/sh(或来自 的任何内容which sh):

45 14 * * * /bin/sh /path/to/script/simple.sh
于 2013-11-12T13:17:09.300 回答
0

也许你的 .sh 脚本的第 1 行不应该有空格:

#! /bin/bash

#!/bin/bash

尽管我可以理解为什么在交互式 shell 中调用它时它似乎仍然有效(#只能注释掉该行的其余部分)。

尽管如此,我猜最坏的情况是它只会忽略该行并继承 cron 的/bin/sh解释器

于 2015-11-23T15:18:35.187 回答