Crontab没有错误,但不执行脚本
我想从FreeBSD上的cron执行一个shell脚本。Crontab没有错误,但不执行脚本
为了测试是否crontab
工作可言,我写的行
* * * * * echo "Hello" > /home/myuser/logile
,它做工精细。
但是当试图执行任何脚本时,它什么也不做,甚至没有发生错误。 (在我试图运行该脚本是一样的echo命令) 下面是crontab -l
输出:
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
HOME=/home/myuser
MAILTO=myuser
* * * * * /home/myuser/shellscript.sh > /home/myuser/logfile
为什么脚本没有得到执行,虽然crontab
显然是运行? 所有文件的权限设置为rwxr-xr-x
。
你试过
* * * * * /bin/sh /home/myuser/shellscript.sh > /home/myuser/logfile
是的,我试过了,但没有反应。 – crontabOnFreebsd 2010-01-12 16:36:16
如果您收到一个错误,那么你的日志文件可能无法捕捉到它,试试这个:
* * * * * /home/myuser/shellscript.sh > /home/myuser/logfile 2> /home/myuser/errorfile
它一直以来我没有任何的cron东西一会儿;但事情总是用得到我:
环境变量未设置:一般来说,我认为有必要建立完整路径(甚至是东西像“猫”)的所有命令[或至少设置ENV脚本本身内的变量]。
确保拥有脚本等的用户确实是正在运行脚本的用户:当您从交互式shell进行测试时,这可能不是同一用户。脚本可能写入的目录/文件也一样。
此外:检查电子邮件为root用户 - 您可能会发现错误已被转移到收件箱,这可能会帮助您进一步排除故障。
cron通过电子邮件发送任何错误到crontab文件的所有者(通常是“root”,以便您可以检查该帐户的电子邮件)。要有任何错误邮寄到“crontabOnFreebsd”把:
MAILTO=crontabOnFreebsd
在您的crontab(靠近顶部)。
欲了解更多信息发出以下命令:
man 5 crontab
你有线索,检查/var/log/cron
?
* * * * * /bin/sh /home/myuser/shellscript.sh
或
* * * * * /bin/bash /home/myuser/shellscript.sh
在MacOSX的10.6为我工作作为rootuser
是否检查命令行有一个换行/ CR在该行的结束?我挣扎了几个小时试图找到关于cron的非执行PHP脚本一个原因,当我根本就没有压在该行的末尾输入的时候我编辑与crontab -e命令在cron作业:-)
非常感谢您的信息。按下输入结束行解决了我的问题。谢谢。 – Phoca 2017-02-20 15:55:39
你能发布剧本?我知道你说是微不足道...但...:P – 2010-01-12 16:45:04
的脚本是: #/ bin/sh的 回声“你好” 和interaktive外壳;-)工作 – crontabOnFreebsd 2010-01-12 17:39:32