可能重复:
crontab 不起作用的原因
我设置了一个 crontab,每分钟运行一个 shell 脚本。这是我的 crontab 文件:
* * * * * sh /var/www/stuff/public_html/recycle.sh
这个 crontab 根本无法运行,但如果我单独运行 shell 脚本,它就可以完美运行。有人能解释为什么会发生这种情况吗?其他可能有用的信息:
- 操作系统:Ubuntu 10.04
- 运行 crontab 的用户:root
答案1
这可能是权限问题吗?
另外 - 尝试在脚本中添加电子邮件地址,以便任何输出(错误等)都可以通过电子邮件发送给您。
您可以通过添加以下内容来实现: [电子邮件保护]
编辑:我看到您正在以 root 身份运行,之前错过了这一点……
脚本是否可能使用了 root 没有的环境变量?即,您可能不想使用“python”,而是想使用 /bin/python(或其他任何变量)
答案2
在根电子邮件帐户中查找电子邮件。
也许你真的想要
\* \* \* \* \* sh -c "/var/www/stuff/public_html/recycle.sh"
我认为整个“sh -c”可能是多余的,所以只需使用命令尝试一下/var/www.....
更好的是,捕获输出,然后您就知道它运行了,并且您可以将 stdout/stderr 捕获到一个文件中以供以后检查。
\* \* \* \* \* sh /var/www/stuff/public_html/recycle.sh > /tmp/myProj/recycle_sh.trace_log 2>&1
有些 crontab 理解顶部的单独一行,例如
[email protected]
我希望这有帮助。