2013-03-09 8 views
0

Ниже строки моего сценария bash не записывать вывод /tmp/DPE_SC/LoadUnits/ttx/bin/deasn9 -b -a cdrr6 $fnames в файл $dst_dir"/"$fstat"-"$fnames".txt, когда я выполняю команду crontab. Он создает только пустой файл с именем $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/местные/бен:/USR/бен :/бен:/USR/местные/SBIN:/USR/SBIN:/SBIN:/TMP/DPE_SC/Инструменты:/USR/X11R6/бен

src_dir =/зарядки/chsLog/готовый

dst_dir =/Core/cdr

кд $ 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, но мы не сможем понять, почему он не работает, просто видя используемую линию чтобы запустить его ... –

+0

@GordonDavisson Как ваш запрос, здесь я помещаю весь свой скрипт. Он отлично работает из cmdline. Но из crontab не работает только 'deasn9 -b -a cdrr6 $ {fnames}> $ dst_dir/$ fstat - $ {fnames} .txt' строка. Я вижу, что строка 'echo $ fstat> $ dst_dir/last_cdr.txt' отлично работала от crontab. – tsoomo

+0

из stderr msg shell попытался открыть файл cdrr6.spe. Но cdrr6 должен быть частью опции deasn9 binary. Как я могу сказать, что оболочка cdrr6 является опцией deasn9? – tsoomo

ответ

0

Я нашел, что ошибся. cdrr6 был не только вариантом. Это библиотека форматирования cdr. Затем я экспортировал LIB-путь из scipt. Теперь он работал отлично.

1

Помните, что ваш .profile, .bashrc, и др. и др. недоступны изнутри cron.

Переменные окружения должны быть определены непосредственно в crontab.

например.

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