2012-02-27 100 views
0

我有一个可以从命令行成功运行的shell脚本。cron作业在解压缩文件时失败

但是,当我尝试在cron作业中运行相同的脚本时,它会成功运行,直到出现解压缩文件的部分,然后在解压缩部分失败。

发生“UNZIP FILES”的回显,然后进程失败。

任何想法为什么我能够从命令行成功运行脚本,但不能作为cron,以及它为什么可能在解压缩部分失败?

这里的脚本的解压缩部分:

# Unzip the zipped files that were brought down 
echo "\n*** UNZIP FILES ***" 
cd $FILES_DIR 
for z in *.zip; do unzip $z; done 
+1

'$ FILES_DIR'的值是什么?什么是错误信息,如果有的话?什么是在crontab中设置的$ PATH?或者你在脚本中修改它? '$ FILES_DIR'中是否有'.zip'文件? – 2012-02-27 14:47:04

+0

啊哈 - 非常好的问题,谢谢 - 看起来像$ PATH是不同的crontab,而不是当我直接登录到外壳。是否有一种“正确”的方式来设置crontab中的$ PATH,就像我打开shell时一样?或者,我应该在我的脚本中设置$ PATH吗? – 2012-02-27 14:58:04

回答

1

$PATHcrontab不同,而不是命令行。

我更新了$PATHcrontab,与我启动命令行然后能够执行crontab没有问题的情况相同。

感谢Zsolt Botykai提出的很好的问题,因为他们让我回答。