URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8121
[ Назад ]

Исходное сообщение
"awk и crontab из под cygwin"

Отправлено nastr , 02-Мрт-09 17:13 
Есть сервак под 2003 виндой, на нём установлен cygwin.
На cygwin'не запускается следующий скрипт:
mkdir /tmp/noerror
err=/tmp/noerror/SX_errors_`date "+%m%d%H%M"`\.txt
for arg in `ls`
do
grep -v error\#: $arg | grep -v 'Error <' > /tmp/noerror/$arg
echo $arg >> $err
awk '{
i = index($0, "error#:");
a = index($0, "Error <");
if (a) {
    print substr($0,index($0,":")+1,19) "| " substr($0,index($0,"Error <")+7)
}    
if (i) {
    var = substr($0,index($0,":")+1);
    if (match(var, 123)) {
        tim = strftime("%Y.%m.%d_%H:%M:%S| ", substr(var, 0, 10));
        print tim substr($0,i+7)
        }
    else {
        tmp = substr(var, 0, 19);
        if (match(tmp, 200)) {
        print tmp "| " substr($0,i+7)
        }
        else {
        tmp="    .  .  _  .  .  | ";
        print tmp substr($0,i+7)
        }
    }
}
}' $arg | sort -t\| +1 >> $err

Проблема в том что когда я в ручную запускаю скрипт он всё правильно отрабатывает.
Но когда он запускается через crontab, то awk не отрабатывает! в логах crontab пишет:
Input file specified two times.
Не пойму из за чего awk не работает из под crontab'a? Или проблема в том что файлы передаются awk через цыкл?


Содержание

Сообщения в этом обсуждении
"awk и crontab из под cygwin"
Отправлено mikra , 03-Мрт-09 13:47 
>Проблема в том что когда я в ручную запускаю скрипт он всё
>правильно отрабатывает.
>Но когда он запускается через crontab, то awk не отрабатывает!

А шел одинаковый? А PATH у кронтаба и юзера?


"awk и crontab из под cygwin"
Отправлено andreik , 03-Мрт-09 16:02 
Цикл for не закрыт done.

"awk и crontab из под cygwin"
Отправлено nastr , 04-Мрт-09 12:06 
>А шел одинаковый? А PATH у кронтаба и юзера?

У юзера и в скрипте указаны одинаковые шеллы.
Какой shell использует crontab в cygwin'е я не пойму..:(
но по моему если в начале скрипта указано на каком шелле он должен выполняться, то какой шелл использует кронтаб не принципиально, или я ошибаюсь?

>Цикл for не закрыт done.

в скрипте он закрыт, просто я дал не полный листинг скрипта, к тому же если бы цыкл был не закрыт, то скрипт и вовсе не выполнялся..;)