2017-04-01 191 views
0

我有一个bash脚本,需要在每天晚上9:30执行。它的名为fetchIND.sh,我已经在我的选项卡中为此指定了shell和path参数,如下所示。它应该使用sftp从另一台服务器上获取文件,并且手动工作得很好。但是,用crontab是不会执行的。Crontab将不会执行我手动执行的脚本

我的crontab条目:

06 21 * * *根在/ usr /斌/庆典/root/IND/fetchIND.sh

后“的ps aux

结果|的grep的bash”命令:

根5815个0.0 0.0 8984 808 PTS/0 S + 21:06 0:00的grep --color =汽车的bash

然而,我的脚本不实际执行。任何关于这方面的帮助都会很棒。谢谢!!

+0

请拿看看[编辑帮助](http://stackoverflow.com/editing-help)。 – Cyrus

回答

0

cron可能会尝试在cron shell中运行此操作,该操作可能没有在root shell中运行该命令的权限。

添加sudo可能会完成这项工作。请参阅本作更https://superuser.com/a/1046126

0

(编辑了一个建议,进行语法检查 - 这似乎是有效的为CentOS离开其他的建议,加入细节 - 。对不起,我没有足够的因缘评论,嘿嘿)

您的脚本可能依赖于事情时,由cron守护程序调用的是不同的:你可能在你的shell已经改变了的环境变量,访问一个tty等

您可以通过附加重定向调试它:

06 21 * * * root /usr/bin/bash /root/IND/fetchIND.sh 2>&1 >> /tmp/trace_when_running_from_crontab.log 
+0

嘿。 'root'出现的原因是因为我的crontab要求在命令之前指定用户名。我正在使用Cent OS,因此格式可能不同 – Vedant7