【问题标题】:simple crontab not running简单的 crontab 没有运行
【发布时间】:2014-12-02 10:36:10
【问题描述】:

我搜索了几个论坛,但找不到任何表明我的 cron 工作不正确的内容。我有一个运行 python 脚本的 .sh 脚本,我希望我的 cron 作业每分钟运行一次该 .sh 脚本。我输入了我的电子邮件,但到目前为止没有任何证据证明该作业正在运行。

这是我的 cronjob:

    #!/bin/bash
    MAILTO=name@email.com

    * * * * * /home/somedir/anotherdir/bash_scripts/script.sh

当我在命令行运行脚本“script.sh”时,它运行正常。 cron 作业当前位于同一文件夹中。我有一种感觉,这是不正确的。有什么建议?谢谢!!!

【问题讨论】:

  • Cronjob,在同一个文件夹中?要添加新的 cronjob,请使用 crontab -e 将您的 * * * * * /path/to/your/script.sh 放在那里,保存并退出编辑器。它将更新 cron,一切都会很开心。
  • 我确实在命令行输入了 crontab -e。此外,当我编辑 cron_script 然后退出编辑器时,我运行“crontab /home/kgleeso/bash_scripts/cron_script.sh”。这些不正确吗?
  • 我不相信在运行crontab -e 之后有任何需要运行'crontab /home/kgleeso/bash_scripts/cron_script.sh',老实说我不确定那会做什么。
  • 好吧,这就是我现在要做的。它没有返回错误,并且我已经三次检查了路径。我可以对此进行某种错误检查吗?
  • SHELL 表示您的 shell 命令,特别是。它指向一个命令,即您的 shell(例如、SHELL=/bin/bash)。 PATH 是一个文件系统路径列表,用于告诉 shell 在哪里可以找到要执行的命令(例如、PATH=/bin:/usr/bin:/home/me/bin)。您可以谷歌“PATH bash”了解更多详情。但是如果您希望系统在script.sh 中找到您尝试执行的命令,则它们需要在您的PATH 中,而默认的PATH 可能不够用。我无法告诉你 PATH 需要是什么,因为我不知道你的 script.sh 文件中有什么。

标签: bash cron crontab


【解决方案1】:

您的条目应该如下所示:

MAILTO=name@email.com
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin

* * * * * /home/somedir/anotherdir/bash_scripts/script.sh

...PATH 只是一个猜测。您可以将其替换为在 shell 中运行时获得的输出:

echo $PATH

正如在 cmets 中已经解释的那样,需要设置 PATH 以便在脚本中运行的命令在没有完整路径的情况下运行。

【讨论】:

    猜你喜欢
    • 2015-05-05
    • 1970-01-01
    • 2016-10-06
    • 1970-01-01
    • 2014-12-03
    • 1970-01-01
    • 2014-08-31
    • 2015-08-18
    • 2012-10-28
    相关资源
    最近更新 更多