Cron Jobs没有在Linux Mint 12中运行

时间:2013-01-14 08:42:30

标签: linux cron

这是我的crontab -e文件的内容

#!/bin/bash
6 14 * * * /home/rishi/cront.sh

另外,cront.sh文件只有这个

mkdir foo

自从过去两天以来,我一直在尝试做这项工作。从终端运行时,cront.sh命令有效。但是,从crontab开始不起作用。

修改

事实证明,只需使用root编辑crontab -e 做了这个工作。没有什么必须做的了。

3 个答案:

答案 0 :(得分:3)

cron下,无法保证您的环境变量(最重要的是PATH)将被固定设置。

尝试在crontab顶部添加这样的行:

PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin

此外,最好使用mkdir的完整路径:

mkdir /path/to/my/dir

此外,确保您的cront.sh可执行文件不会有害:

chmod +x /home/rishi/cront.sh

之后,它应该有用。

修改

调试crontab问题的一般方法

  • 在要调试的脚本顶部,添加一行:

    set    # this should print all environment variables
    
  • 手动执行脚本,将输出重定向到某个日志文件。

  • 现在,编辑crontab就是这样:

    * * * * * /path/to/my/script 2>&1 > /path/to/log/file2
    

确保您的脚本可以写入日志文件。 另外,请确保您的脚本已设置可执行位。

  • 比较日志文件1和日志文件2,密切关注环境。变量。如果它们不同,请使用您想要设置它们的任何方法。可以在crontab中添加行,或在脚本中使用export var=value

  • 之后,没有理由不能正常工作。

答案 1 :(得分:1)

您不需要第一行

#!/bin/bash <--- remove this line
6 14 * * * /home/rishi/cront.sh

您的脚本是否可执行?

如果不是。尝试在终端中运行以下命令。

 chmod +x /home/rishi/cront.sh

带有注释字段的crontab格式示例如下:

# Minute   Hour   Day of Month       Month          Day of Week        Command    
# (0-59)  (0-23)     (1-31)    (1-12 or Jan-Dec)  (0-6 or Sun-Sat)                
    0        2          12             *               0,6           /your/path/yourscript.sh

答案 2 :(得分:0)

6 14 * * * sh /home/rishi/cront.sh

或 在cront.sh中添加第一行

#!/bin/bash

或chmod a + x /home/rishi/cront.sh