BASH脚本在crontab中不能正常工作

问题描述:

当我从crontab执行时,我的bash脚本的下方不会输出/tmp/DPE_SC/LoadUnits/ttx/bin/deasn9 -b -a cdrr6 $fnames到文件$dst_dir"/"$fstat"-"$fnames".txt。 它只创建一个名为$dst_dir"/"$fstat"-"$fnames".txt的空文件 确定它可以从命令行手动正常工作。BASH脚本在crontab中不能正常工作

的/ tmp/DPE_SC/LoadUnits/TTX /斌/ deasn9 -b -a cdrr6 $ fnames> $ dst_dir/$ fstat- $ fnames.txt

什么是我的错?

这是我整个脚本

#/斌/庆典

出口PATH =/tmp目录/ DPE_SC/LoadUnits/TTX /斌:在/ usr/local/bin目录:在/ usr/bin中:/ bin中:在/ usr/local/sbin中:/ usr/sbin目录:/ sbin目录:/ tmp目录/ DPE_SC /工具:在/ usr/X11R6/bin中

src_dir = /充电/ chsLog /就绪

dst_dir =/Core/cdr

CD $ src_dir

lastfile = cat $dst_dir/last_cdr.txt

名= ls -t | grep ^chsLog

fcounter = 1

为fnames在$文件名

 do 

      fstat=`stat -c %y ${fnames} | cut -d '.' -f1` 

      fstat=`echo ${fstat//[^0-9]/}` 

      if [[ $fstat -gt $lastfile ]] 

      then 

        if [[ $fcounter -eq 1 ]] 

        then 

          echo $fstat > $dst_dir/last_cdr.txt 

          let "fcounter = $fcounter + 1" 

        fi 

        deasn9 -b -a cdrr6 ${fnames} > $dst_dir/$fstat-${fnames}.txt 

      fi 

    done 
+0

听起来像/ tmp/DPE_SC/LoadUnits/ttx/bin/deasn9在crontab上下文中不起作用,但我们无法仅仅通过查看所使用的行来找出它为什么不起作用运行它... – 2013-03-09 12:47:20

+0

@GordonDavisson根据你的要求,在这里,我把我的整个剧本。它从cmdline运行良好。但只有'deasn9 -b -a cdrr6 $ {fnames}> $ dst_dir/$ fstat - $ {fnames} .txt'行不能从crontab中运行。我看到'echo $ fstat> $ dst_dir/last_cdr.txt'这行从crontab运行良好。来自stderr msg shell的 – tsoomo 2013-03-11 04:53:15

+0

试图打开名为cdrr6.spe的文件。但是cdrr6应该是deasn9二进制选项的一部分。我怎么能告诉它壳牌cdrr6是deasn9的选择? – tsoomo 2013-03-12 03:58:22

我发现我误会了。 cdrr6不仅是选项。这是cdr格式化库。然后我从scipt中导出了LIB路径。 现在它工作完美。

记住,你的.profile.bashrc,等。人。在cron中不可用。

环境变量必须直接在crontab中定义。

例如

fstat=myValue 
fname=aName 
@hourly myJob ${fstat} ${fname}