The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Проблема выполнения скрипта через CRONTAB"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Проблема выполнения скрипта через CRONTAB"  
Сообщение от Evgueny on 31-Май-06, 14:20 
ОС: SunOS 5.8
Есть скрипт на shell, который по фтп забирает файлы с удалённого хоста. Если его запустить ручками, то всё работает, а если повесить в crontab, то выполняется до середины скрипта (судя по информации из лога этого скрипта). Всё обрывается на команде "get имя_файла". Кто-нибудь, подскажите, в какую сторону копать?
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Проблема выполнения скрипта через CRONTAB"  
Сообщение от allez (ok) on 31-Май-06, 21:01 
>ОС: SunOS 5.8
>Есть скрипт на shell, который по фтп забирает файлы с удалённого хоста.
>Если его запустить ручками, то всё работает, а если повесить в
>crontab, то выполняется до середины скрипта (судя по информации из лога
>этого скрипта). Всё обрывается на команде "get имя_файла". Кто-нибудь, подскажите, в
>какую сторону копать?


Не могли бы вы привести здесь текст скрипта и кусочек лога, а то по вашему пересказу
трудно судить о причинах сбоя...

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "Проблема выполнения скрипта через CRONTAB"  
Сообщение от chip email(ok) on 31-Май-06, 21:59 
>ОС: SunOS 5.8
>Есть скрипт на shell, который по фтп забирает файлы с удалённого хоста.
>Если его запустить ручками, то всё работает, а если повесить в
>crontab, то выполняется до середины скрипта (судя по информации из лога
>этого скрипта). Всё обрывается на команде "get имя_файла".

get подразумевается встроенная команда ftp клиента? или отдельная команда?

> Кто-нибудь, подскажите, в
>какую сторону копать?

Обычно всё решается добавлением сразу после
#!/bin/sh

строчки

PATH="/bin:/usr/bin:/usr/ccs/bin:/usr/sfw/bin:${PATH}"; export PATH;

ps: пути уточните для свой соляры.


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "Проблема выполнения скрипта через CRONTAB"  
Сообщение от Evgueny on 01-Июн-06, 10:54 
>ОС: SunOS 5.8
>Есть скрипт на shell, который по фтп забирает файлы с удалённого хоста.
>Если его запустить ручками, то всё работает, а если повесить в
>crontab, то выполняется до середины скрипта (судя по информации из лога
>этого скрипта). Всё обрывается на команде "get имя_файла". Кто-нибудь, подскажите, в
>какую сторону копать?


Вот текст скрипта:

#/bin/sh

TMPFILE=/tmp/ftp.$$
TMP=files.$$
trap 'rm -f ${TMP} ; exit' 0 1 2 3 15
remhost=192.168.10.247
DAT=`date '+%Y-%m-%d'`
ftpflags="-i -n"
echo "user xxx pass" > ${TMP}
echo binary >> ${TMP}
echo cd /var/flows/reports/in/ >> ${TMP}
echo ls -rt >> ${TMP}
echo quit >> ${TMP}
#listing dir
ftp ${ftpflags} ${remhost} < ${TMP} >> ${TMP}

echo "user xxx pass" > ${TMPFILE}
echo binary >> ${TMPFILE}
echo cd /var/flows/reports/in/ >> ${TMPFILE}
#echo ls -rt >> ${TMPFILE}
echo lcd /neo/iptraffic/in/ >> ${TMPFILE};
for i in `awk '{if(index(substr($1,0,2),"20")==1) print $1}' ${TMP}`
do
    #if "$i" != "${DAT}"
        #then  
            echo get "$i" >> ${TMPFILE}
            echo rename "$i" "${i:1}" >> ${TMPFILE}
        #else
            # continue
    #fi
    #echo $i >> ${TMPFILE}
done
echo cd /var/flows/reports/out/ >> ${TMPFILE}
echo lcd /neo/iptraffic/out/ >> ${TMPFILE};
for i in `awk '{if(index(substr($1,0,2),"20")==1) print $1}' ${TMP}`
do
    #if "$i" != "${DAT}"
        #then  
            echo get "$i" >> ${TMPFILE}
            echo rename "$i" "${i:1}"  >> ${TMPFILE}
        #else
            # continue
    #fi
    #echo $i >> ${TMPFILE}
done
echo quit >> ${TMPFILE}
ftp ${ftpflags} ${remhost} < ${TMPFILE} >> ${TMPFILE}
echo ${remhost} >> ${TMPFILE}

попытка добавить PATH в начале скрипта к другому результату не привела. В ${TMPFILE} всё заканчивается на "get ..."

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

4. "Проблема выполнения скрипта через CRONTAB"  
Сообщение от Evgueny on 01-Июн-06, 11:08 
>ОС: SunOS 5.8
>Есть скрипт на shell, который по фтп забирает файлы с удалённого хоста.
>Если его запустить ручками, то всё работает, а если повесить в
>crontab, то выполняется до середины скрипта (судя по информации из лога
>этого скрипта). Всё обрывается на команде "get имя_файла". Кто-нибудь, подскажите, в
>какую сторону копать?

Кстати, вот что Crontab по мылу прислал после выполнения скрипта:

Your "cron" job on solar
/bin/sh -c "/neo/iptraffic/ftpscript.sh >/tmp/ftpcron.$$"

produced the following output:

/neo/iptraffic/ftpscript.sh: bad substitution

Что это значит?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

5. "Проблема выполнения скрипта через CRONTAB"  
Сообщение от ACCA (ok) on 02-Июн-06, 03:52 
>/neo/iptraffic/ftpscript.sh: bad substitution
>
>Что это значит?


/bin/sh не умеет ${i:1}. Попробуй /usr/bin/bash

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

6. "Проблема выполнения скрипта через CRONTAB"  
Сообщение от Evgueny on 02-Июн-06, 13:05 
>>/neo/iptraffic/ftpscript.sh: bad substitution
>>
>>Что это значит?
>
>
>/bin/sh не умеет ${i:1}. Попробуй /usr/bin/bash


Как это /bin/sh не умеет ${i:1}? А, почему, тогда, если руками скрипт запускаешь, то он нормально отрабатывает?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

7. "Проблема выполнения скрипта через CRONTAB"  
Сообщение от chip email(ok) on 02-Июн-06, 13:12 
>>ОС: SunOS 5.8
>>Есть скрипт на shell, который по фтп забирает файлы с удалённого хоста.
>>Если его запустить ручками, то всё работает, а если повесить в
>>crontab, то выполняется до середины скрипта (судя по информации из лога
>>этого скрипта). Всё обрывается на команде "get имя_файла". Кто-нибудь, подскажите, в
>>какую сторону копать?
>
>Кстати, вот что Crontab по мылу прислал после выполнения скрипта:
>
>Your "cron" job on solar
>/bin/sh -c "/neo/iptraffic/ftpscript.sh >/tmp/ftpcron.$$"
>
>produced the following output:
>
>/neo/iptraffic/ftpscript.sh: bad substitution
>
>Что это значит?

Добавить в начало скрипта set -x и прописать MAILTO на существующий адрес, чтобы разобрать вывод скрипта.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру