|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Boris Pankin 2:5020/545.47 22 Dec 2005 20:22:26 To : All Subject : bash и крон -------------------------------------------------------------------------------- 22 Dec 05 03:52, I wrote to you: спасибо, разобрался. собственно, прогон тестового скрипта показал, что крон и вправду теряет языковые переменные среды окружения. работает вот такая схема, если кому интересно: === Begin file === #!/usr/bin/env bash # WD="/home/aabp/myscripts/testcron" TMPDIR=$WD"/tmp" CURRENTDATE=`date +%Y.%m.%d.%H.%M.%S` NET=192.168.7. cd $WD if [[ `pwd` != "$WD" ]]; then echo "Hевозможно сменить каталог"; exit; fi if [ ! -e $TMPDIR ]; then mkdir $TMPDIR; fi; cd $TMPDIR if [[ `pwd` != "$TMPDIR" ]]; then echo "проверьте права доступа"; exit; fi cd $WD set > $TMPDIR/env.MAIN.$CURRENTDATE LIMIT=254 for ((IP=1; IP <= LIMIT ; IP++)) do ( set > $TMPDIR/env.MAIN1.$CURRENTDATE touch $TMPDIR/$CURRENTDATE.$IP echo $CURRENTDATE $IP "тест" > $TMPDIR/TST.$CURRENTDATE.$IP NAME=`nmblookup -A $NET$IP | head -2 | tail -1 | awk '{print $1}'` (LANG=ru_RU.KOI8-R smbclient -L $NAME -I $NET$IP -Uguest% -W HOME && set > $TMPDIR/env.$CURRENTDATE) | grep Disk >> $TMPDIR/TST.$CURRENTDATE.$IP rm -f $TMPDIR/$CURRENTDATE.$IP ) & done TEST=`ls $TMPDIR/$CURRENTDATE.* 2>/dev/null | wc -l` while [ "$TEST" != "0" ]; # ждем окончания обработки do sleep 1 # echo $TEST TEST=`ls $TMPDIR/$CURRENTDATE.* 2>/dev/null | wc -l` done for FILE in $TMPDIR/TST.$CURRENTDATE.* do cat $FILE >> TST.$CURRENTDATE rm -f $FILE done === End file === LANG надо задавать непосредственно перед вызовом команды, иначе все это в трубах теряется. wbr, Boris Pankin | mailto:aabp@mail.ru | http://aabp.dax.ru --- GoldED+/LNX 1.1.5 (Linux 2.6.9-22.0.1.EL iP-III) * Origin: Crazy ZOO (2:5020/545.47) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/398643aad519.html, оценка из 5, голосов 10
|