Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Mint 12中未运行的Cron作业_Linux_Cron - Fatal编程技术网

Linux Mint 12中未运行的Cron作业

Linux Mint 12中未运行的Cron作业,linux,cron,Linux,Cron,这是我的crontab-e文件的内容 #!/bin/bash 6 14 * * * /home/rishi/cront.sh 此外,cront.sh文件只有以下内容 mkdir foo 从过去的两天起,我一直在努力使这项工作顺利进行。当从终端运行cront.sh命令时,该命令起作用。但是,在crontab中不起作用 编辑 事实证明,只需使用root编辑crontab-e 完成了任务。再也不用做什么了。你不需要排在第一行 #!/bin/bash <--- remove this line

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

#!/bin/bash
6 14 * * * /home/rishi/cront.sh
此外,cront.sh文件只有以下内容

mkdir foo
从过去的两天起,我一直在努力使这项工作顺利进行。当从终端运行cront.sh命令时,该命令起作用。但是,在crontab中不起作用

编辑

事实证明,只需使用root编辑crontab-e
完成了任务。再也不用做什么了。

你不需要排在第一行

#!/bin/bash <--- remove this line
6 14 * * * /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

你不需要排在第一线

#!/bin/bash <--- remove this line
6 14 * * * /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

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
    
  • 手动执行脚本,将输出重定向到某个日志文件1

  • 现在,将crontab编辑为如下内容:

    * * * * * /path/to/my/script 2>&1 > /path/to/log/file2
    
确保脚本的日志文件是可写的。 另外,确保您的脚本设置了可执行位

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

  • 在那之后,没有理由不正常工作


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
    
  • 手动执行脚本,将输出重定向到某个日志文件1

  • 现在,将crontab编辑为如下内容:

    * * * * * /path/to/my/script 2>&1 > /path/to/log/file2
    
确保脚本的日志文件是可写的。 另外,确保您的脚本设置了可执行位

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

  • 在那之后,没有理由不正常工作

试试看

6 14 * * * sh /home/rishi/cront.sh
或 在cront.sh中添加第一行

#!/bin/bash
或者chmoda+x/home/rishi/cront.sh

或 在cront.sh中添加第一行

#!/bin/bash

或者chmoda+x/home/rishi/cront.sh

我以前没有这行代码。当时它不起作用,所以我尝试添加这个。这也不起作用。您的cron作业将在14:06运行?我已将此更改为实验。所以,这一定不是问题所在。我以前没有这句话。当时它不起作用,所以我尝试添加这个。这也不起作用。您的cron作业将在14:06运行?我已将此更改为实验。所以,这一定不是问题所在。我一步一步地做了所有的事情。但它仍然不起作用。我需要在路径中添加更多的内容吗?我一步一步地添加了所有内容。但它仍然不起作用。我需要在路径中添加更多内容吗?我自己找到了解决方案。只需从根目录中选择cronted-e,它就成功了。我自己找到了解决方案。从根目录中选择cronted-e,它就起作用了。关于编辑:这不应该是必需的,但您是否可以将该编辑作为答案发布,以便将此问题标记为已回答?关于编辑:这不应该是必需的,但您是否可以将该编辑作为答案发布,以便将此问题标记为已回答?