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
我发现我误会了。 cdrr6不仅是选项。这是cdr格式化库。然后我从scipt中导出了LIB路径。 现在它工作完美。
记住,你的.profile
,.bashrc
,等。人。在cron中不可用。
环境变量必须直接在crontab中定义。
例如
fstat=myValue
fname=aName
@hourly myJob ${fstat} ${fname}
听起来像/ tmp/DPE_SC/LoadUnits/ttx/bin/deasn9在crontab上下文中不起作用,但我们无法仅仅通过查看所使用的行来找出它为什么不起作用运行它... – 2013-03-09 12:47:20
@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
试图打开名为cdrr6.spe的文件。但是cdrr6应该是deasn9二进制选项的一部分。我怎么能告诉它壳牌cdrr6是deasn9的选择? – tsoomo 2013-03-12 03:58:22