这是我的crontab -e文件的内容
#!/bin/bash
6 14 * * * /home/rishi/cront.sh
还有,cront.sh文件只有这个
mkdir foo
自过去 2 天以来,我一直在努力使这项工作正常进行。 cront.sh 命令在从终端运行时有效。但是,在 crontab 中不起作用。
编辑
事实证明,只需使用 root 编辑 crontab -e 完成了工作。无需再做任何事情。
最佳答案
在 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,密切关注环境。变量。如果它们不同,请使用您想要将它们设置为相同的任何方法。它可以向
crontab
添加行,或者在您的脚本中使用export var=value
。在那之后,没有理由不能正常工作。
关于linux - Cron 作业未在 Linux Mint 12 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14315272/