The OpenNET Project / Index page

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

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

"перловый скрипт vs cron"
Сообщение от rkynx emailИскать по авторуВ закладки on 21-Окт-03, 05:07  (MSK)
Есть перловый скрипт, он должен отрабатывать по крону, выдирать из MySQL некие данные, пихать их в файл и выкладывать файлы на ftp.
если он запускается из консоли - то все работает как часы, если же его запускать по крону, напрямую, или из шел-скрипта (типа там зайти в папку где лежит перловый скрипт, и запустить перловый скрипт), то файл на фтп не закачиватся.
вот кусок:

use NET::FTP;

$ftp = Net::FTP->new("xxx.xxxx.ru", Debug => 2);
wlog " Connecting to FTP-Server";

if ($ftp == NULL)
{
wlog " Could not connect to FTP-Server! Exit.";
exit(9);
}

if($ftp->login("anonymous",'xxx@'))
{
wlog " Logging on to FTP-Server";
if ($ftp->cwd("xxx"))
{
$ftp->ascii;
while (my $ln = $result->fetchrow_hashref())
{
$fh = new IO::File $ln->{'id'}, "w";
if (defined $fh)
{
print <$fh>;
$fh->print("293\n");
$fh->print($ln->{'head'});
$fh->print("\n");
$fh->print($ln->{'text'});
undef $fh;
$lst=$ln->{'id'};
wlog " Creating tempfile: ID=".$lst;
sleep 2
if ($ftp->put($lst))
{
wlog " File ".$lst." sucsessfuly upload to FTP-Server!";
}
else
{
wlog " Cannot upload file ".$lst." to FTP-Server! Exit. $!";
exit(4);
}
wlog " Could not delete $fh\n" unless unlink($lst);
}
}
}
else
{
wlog " Could not change directory to xxxx! Exit.";
exit(6);
}
}
else
{
print "Could not login with user!";
wlog " Could not login to FTP-Server Vessolink! Exit.";
exit(7);
}

В моих логах все что пишется так это, когда через крон:
2003.10.20 18:45:12 Cannot upload file 20031020174233 to FTP-Server! Exit. Bad file descriptor

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "перловый скрипт vs cron"
Сообщение от devnull Искать по авторуВ закладки on 21-Окт-03, 09:55  (MSK)
какой минимальный код приводит к ошибке?

сравни environment в котором выполняется скрипт по cron с тем что у тебя в shell.

что будет если в скрипте cd в нужную директорию?

ошибка-то "bad file descriptor"

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "перловый скрипт vs cron"
Сообщение от devnull Искать по авторуВ закладки on 21-Окт-03, 10:14  (MSK)
запусти cron'ом скрипт:

set > /tmp/environment.txt 2>&1

и сравни результат с твоим set|less


хотя может быть ответ вообще не в тему, просто я однажды имел траблы с кроном, пока не прописал _везде_ полные пути

или назначать cwd

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "перловый скрипт vs cron"
Сообщение от rkynx emailИскать по авторуВ закладки on 21-Окт-03, 11:20  (MSK)
я наверное буду выглядеть полным идиотом, но скажу что они различаются.
вот при запуске руками:

addsuffix                                                                  
argv    ()
cwd     /bhome/part3/01/viac/vcgi
dirstack        /bhome/part3/01/viac/vcgi
echo_style      bsd
edit
filec
gid     310
group   gcc
history 100                                                                
home    /bhome/part3/01/viac
killring        30
mail    /var/mail/viac
owd     /bhome/part3/01/viac
path    (/bbs /bin /sbin /usr/bin /usr/sbin /usr/local/bin .)
prompt  %#
prompt2 %R?
prompt3 CORRECT>%R (y|n|e|a)?
savehist        100
shell   /usr/local/bin/tcsh
shlvl   1
status  0
tcsh    6.12.00
term    cons25r
tty
uid     3441
user    viac
version tcsh 6.12.00 (Astron) 2002-07-23 (i386-intel-FreeBSD) options 8b,nls,dl,al,kan,sm,rh,color,dspm,filec

и при запуске через крон:
USER=viac
HOME=/bhome/part3/01/viac
PERLLIB=/bhome/part3/01/viac/perllib
PS1='$ '
OPTIND=1
PS2='> '
LOGNAME=viac
PPID=18417
PATH=/usr/bin:/bin
GECOS=viac.ru
LD_PRELOAD=/usr/local/lib/libpwd_dbenv.so
SHELL=/bin/sh
IFS='
'
TZ=Europe/Moscow


Чего там может не хватать для запуска?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "перловый скрипт vs cron"
Сообщение от devnull Искать по авторуВ закладки on 21-Окт-03, 16:54  (MSK)
я наверное буду выглядеть полным идиотом тоже, т.к. в bsd  не разбираюсь, а у тебя там еще tcsh (ваще не в курсах)

видимо я тебя не в ту степь затащил.

Или дело в запуске из-под крона или скрипт на перле с ошибкой.

еще разок:
-какой минимальный код приводит к ошибке?
-запиши в начале скрипта chdir /bhome/part3/01/viac/vcgi
-пропиши везде полные пути
-добавь в скрипт , чтобы на каждый чих писал в лог, код последней операции,итд

Bad file descriptor - это он про $fh ругается
т.е. где-то здесь порыться надо
$fh = new IO::File $ln->{'id'}, "w";
print $fh; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< чо напишет на это?
if (defined $fh)
{
print <$fh>;
$fh->print("293\n");
$fh->print($ln->{'head'});
$fh->print("\n");
$fh->print($ln->{'text'});
undef $fh;
$lst=$ln->{'id'};
wlog " Creating tempfile: ID=".$lst;
sleep 2
if ($ftp->put($lst))
{
wlog " File ".$lst." sucsessfuly upload to FTP-Server!";
}
else
{
wlog " Cannot upload file ".$lst." to FTP-Server! Exit. $!";
exit(4);
}
wlog " Could not delete $fh\n" unless unlink($lst);
}


это вот первое что в голову приходит

>если он запускается из консоли - то все работает как часы,
>если же его запускать по крону, напрямую, или из шел-скрипта (типа там >зайти в папку где лежит перловый скрипт, и запустить перловый скрипт), то >файл на фтп не закачиватся.


>Чего там может не хватать для запуска?


  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "перловый скрипт vs cron"
Сообщение от rkynx emailИскать по авторуВ закладки on 22-Окт-03, 12:42  (MSK)
>я наверное буду выглядеть полным идиотом тоже, т.к. в bsd  не
>разбираюсь, а у тебя там еще tcsh (ваще не в курсах)
я тоже, это нам провайдером предоставлено

>Или дело в запуске из-под крона или скрипт на перле с ошибкой.
В том то и дело, что я не могу определить, где именно ошибка, переписка с суппортом провайдера ничего не дает, там сидят такие же дубы как и я, похоже

>еще разок:
>-какой минимальный код приводит к ошибке?
вот когда отключаешь ту часть, комментаришь про именно закачку уже файла:
>if ($ftp->put($lst))
то все ок, ошибок нет

>-запиши в начале скрипта chdir /bhome/part3/01/viac/vcgi


вот отсюда
>-пропиши везде полные пути
>-добавь в скрипт , чтобы на каждый чих писал в лог, код
>последней операции,итд
до сюда есть все, ругаецца только исключительно на то что я прописал.

>Bad file descriptor - это он про $fh ругается
>т.е. где-то здесь порыться надо
>$fh = new IO::File $ln->{'id'}, "w";
>print $fh; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< чо напишет на это?
>if (defined $fh)
>{
>print <$fh>;
>это вот первое что в голову приходит

IO::File=GLOB(0x8390180)
IO::File=GLOB(0x8390198)
IO::File=GLOB(0x8390090)
IO::File=GLOB(0x839feac)
IO::File=GLOB(0x839fee8)
IO::File=GLOB(0x839fe58)
IO::File=GLOB(0x8390024)
IO::File=GLOB(0x839ff18)
IO::File=GLOB(0x839fe04)

вот так он пишет... но у меня то берется $lst, а оно берется из базы, типа как дата, из него формируется имя файла.
>>если он запускается из консоли - то все работает как часы,
>>если же его запускать по крону, напрямую, или из шел-скрипта (типа там >зайти в папку где лежит перловый скрипт, и запустить перловый скрипт), то >файл на фтп не закачиватся.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "перловый скрипт vs cron"
Сообщение от rkynx emailИскать по авторуВ закладки on 23-Окт-03, 10:15  (MSK)
Хе-хе...
Кому интересно будет: Надо было просто перевести себя в Passive что бы закачивать файлы.. :-)
  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "перловый скрипт vs cron"
Сообщение от direct emailИскать по авторуВ закладки on 08-Ноя-03, 04:09  (MSK)
>Хе-хе...
>Кому интересно будет: Надо было просто перевести себя в Passive что бы
>закачивать файлы.. :-)

а какже с консоли то работало??


  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




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

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