当我在shellscript [+ crontab]中设置PATH时,循环不起作用

时间:2014-07-30 05:33:51

标签: shell path cron sh crontab

我正在尝试使用crontab构建一个webcrawler来为我自动化任务,但是crontab不能用于我的代码。

我必须shell脚本。第一个:

#!/bin/sh
#!/usr/bin/php

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

echo "Running crawler at: " 
date
php core.php
sh AnalyserScript.sh
php SendClassification.php
echo

第二个(这是第一个代码中的AnalyserSript.sh):

#!/bin/sh
#!/usr/bin/java

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

for f in preanalysis/*.np;
do
    TEXT=$(cat $f)
    java -jar javacode.jar text "$TEXT" options  directory/ > "postanalysis/$f"
    rm "$f"
done

代码工作得非常好,当手动启动时,但是当由crontab执行时,带有“php”“java”或其他“sh”的行被完全忽略。为了解决这个问题,我在两个脚本中添加了“PATH =”行,它们开始在crontab中工作,除了for循环。现在,相反for循环读取文件在“preanalysis”目录中以“.np”结尾,它试图捕获名为“* .np”的文件,因此我的java文件也不起作用。还有另一种解决cron问题或设计另一个循环的方法吗?

我尝试了很多东西,但是我失败了。所以,如果有人帮我解决这个问题,我将非常感谢。

0 个答案:

没有答案