0

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

/tmp/DPE_SC/LoadUnits/ttx/bin/deasn9 -b -a cdrr6 $fnames > $dst_dir/$fstat-$fnames.txt

我的错误是什么?

这是我的整个剧本

#!/bin/bash

导出 PATH=/tmp/DPE_SC/LoadUnits/ttx/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/tmp/DPE_SC/Tools :/usr/X11R6/bin

src_dir=/充电/chsLog/就绪

dst_dir=/核心/cdr

cd $src_dir

最后一个文件=cat $dst_dir/last_cdr.txt

文件名=ls -t | grep ^chsLog

fcounter=1

对于 $filenames 中的 fname

     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
4

2 回答 2

1

请记住,您的.profile, .bashrc, 等。人。不能从 cron 内部获得。

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

例如

fstat=myValue
fname=aName
@hourly myJob ${fstat} ${fname}
于 2013-03-09T12:10:35.717 回答
0

我发现我错了。cdrr6 不仅是选项。它是 cdr 格式化库。然后我从 scipt 导出 LIB 路径。现在它工作得很好。

于 2013-03-12T06:29:39.530 回答