🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.perl
11 messages
11 total messages Started by karraso Mon, 12 Mar 2012 11:31
crontab - perl
#52416
Author: karraso
Date: Mon, 12 Mar 2012 11:31
18 lines
1945 bytes
Witam
Mam w crontab'ie takie wpis
09 * * * * /opt/perl5.8.0/bin/perl /opt/karraso/statystyki/ul.pl >> /
opt/karraso/statystyki/cron.txt 2>&1
niestety cron zapisuje do pliku cron.txt
Can't locate Time/Local.pm in @INC (@INC contains: /usr/local/lib/
perl5/5.8.0/sun4-solaris /usr/local/lib/perl5/5.8.0 /usr/local/lib/
perl5/site_perl/5.8.0/sun4-solaris /usr/local/lib/perl5/site_perl/5
.8.0 /usr/local/lib/perl5/site_perl .) at /opt/karraso/statystyki/
ul.pl line 3.
BEGIN failed--compilation aborted at /opt/karraso/statystyki/ul.pl
line 3.

Z linii komend wszystko jest ok.
Dlaczego cron nie wykonuje polecenia z /opt/perl5.8.0/bin/perl ? Tylko
zagląda do innych katalogów?
Jak go zmusić aby wykonał perl z /opt/perl5.8.0/bin/perl?
Dzięki i pozdrawiam
Re: crontab - perl
#52418
Author: Jarosław Lubczyński
Date: Mon, 12 Mar 2012 12:33
47 lines
2655 bytes
W dniu 2012-03-12 12:31, karraso pisze:
> Witam
> Mam w crontab'ie takie wpis
> 09 * * * * /opt/perl5.8.0/bin/perl /opt/karraso/statystyki/ul.pl>>  /
> opt/karraso/statystyki/cron.txt 2>&1
> niestety cron zapisuje do pliku cron.txt
> Can't locate Time/Local.pm in @INC (@INC contains: /usr/local/lib/
> perl5/5.8.0/sun4-solaris /usr/local/lib/perl5/5.8.0 /usr/local/lib/
> perl5/site_perl/5.8.0/sun4-solaris /usr/local/lib/perl5/site_perl/5
> .8.0 /usr/local/lib/perl5/site_perl .) at /opt/karraso/statystyki/
> ul.pl line 3.
> BEGIN failed--compilation aborted at /opt/karraso/statystyki/ul.pl
> line 3.
>
> Z linii komend wszystko jest ok.
> Dlaczego cron nie wykonuje polecenia z /opt/perl5.8.0/bin/perl ?

cron wykonuje dokładnie to, co masz /etc/crontab, czyli wywołuje perla 
napuszczając go na skrypt ul.pl

> Tylko
> zagląda do innych katalogów?

To nie cron zagląda tylko perl. I nie odnajduje w nich modułu 
Time::Local. Pytanie - czy ten moduł jest zainstalowany? Moduł ten 
należy do zestawu modułów standardowych przynajmniej od wersji 5.6 [1], 
więc raczej powinien być na pokładzie. Czy jak uruchomisz skrypt ul.pl z 
konsoli to działa jak należy? Jeżeli tak, to znajdź find'em położenie 
pliku Local.pm i sprawdź, czy jest on w podkatalogu Time w jednej ze 
ścieżek podanych wyżej.

> Jak go zmusić aby wykonał perl z /opt/perl5.8.0/bin/perl?

Nie w tom dieło :)

> Dzięki i pozdrawiam

[1] http://blob.perl.org/books/beginning-perl/3145_AppD.pdf

-- 
Pozdrawiam
Jarek Lubczyński
(eljot<NULL>90125 at gmail dot com)
Nawiasy trójkątne z zawartością zbędne są

There are 10 kinds of people:
Those who understand binary and those who don't
Re: crontab - perl
#52426
Author: Jarosław Lubczyński
Date: Mon, 12 Mar 2012 12:55
31 lines
2005 bytes
W dniu 2012-03-12 13:33, Jarosław Lubczyński pisze:
> W dniu 2012-03-12 12:31, karraso pisze:
>> Witam
>> Mam w crontab'ie takie wpis
>> 09 * * * * /opt/perl5.8.0/bin/perl /opt/karraso/statystyki/ul.pl>> /
>> opt/karraso/statystyki/cron.txt 2>&1
>> niestety cron zapisuje do pliku cron.txt
>> Can't locate Time/Local.pm in @INC (@INC contains: /usr/local/lib/
>> perl5/5.8.0/sun4-solaris /usr/local/lib/perl5/5.8.0 /usr/local/lib/
>> perl5/site_perl/5.8.0/sun4-solaris /usr/local/lib/perl5/site_perl/5
>> .8.0 /usr/local/lib/perl5/site_perl .) at /opt/karraso/statystyki/
>> ul.pl line 3.
>> BEGIN failed--compilation aborted at /opt/karraso/statystyki/ul.pl
>> line 3.
>>
>> Z linii komend wszystko jest ok.

> Czy jak uruchomisz skrypt ul.pl z
> konsoli to działa jak należy?

Ooops, nie doczytałem, że jest ok :), zatem sprawdź położenie pliku Local.pm


-- 
Pozdrawiam
Jarek Lubczyński
(eljot<NULL>90125 at gmail dot com)
Nawiasy trójkątne z zawartością zbędne są

There are 10 kinds of people:
Those who understand binary and those who don't
Re: crontab - perl
#52420
Author: karraso
Date: Mon, 12 Mar 2012 13:16
21 lines
2164 bytes
.....
>
> To nie cron zagląda tylko perl. I nie odnajduje w nich modułu
> Time::Local. Pytanie - czy ten moduł jest zainstalowany? Moduł ten
> należy do zestawu modułów standardowych przynajmniej od wersji 5.6 [1],
> więc raczej powinien być na pokładzie. Czy jak uruchomisz skrypt ul.pl z
> konsoli to działa jak należy? Jeżeli tak, to znajdź find'em położenie
> pliku Local.pm i sprawdź, czy jest on w podkatalogu Time w jednej ze
> ścieżek podanych wyżej.
>
Witam
Sprawdzałem i mam Local.pm w /opt/perl5.8.0/lib/perl5/5.8.0/Time
ale dlaczego w logu mam
w  Can't locate Time/Local.pm in @INC (@INC contains: /usr/local/lib/
perl5/5.8.0/sun4-solaris /usr/local/lib/perl5/5.8.0 /usr/local/lib/
perl5/site_perl/5.8.0/sun4-solaris /usr/local/lib/perl5/site_perl/5
.8.0 /usr/local/lib/perl5/site_perl .) at /opt/karraso/statystyki/
ul.pl line 3.
BEGIN failed--compilation aborted at /opt/karraso/statystyki/ul.pl
line 3.
Pozdrawiam
Re: crontab - perl
#52428
Author: hubert depesz lubaczewski
Date: Mon, 12 Mar 2012 13:55
35 lines
2102 bytes
On 2012-03-12, karraso <gkrasinski@gmail.com> wrote:
> Witam
> Mam w crontab'ie takie wpis
> 09 * * * * /opt/perl5.8.0/bin/perl /opt/karraso/statystyki/ul.pl >> /
> opt/karraso/statystyki/cron.txt 2>&1
> niestety cron zapisuje do pliku cron.txt
> Can't locate Time/Local.pm in @INC (@INC contains: /usr/local/lib/
> perl5/5.8.0/sun4-solaris /usr/local/lib/perl5/5.8.0 /usr/local/lib/
> perl5/site_perl/5.8.0/sun4-solaris /usr/local/lib/perl5/site_perl/5
> .8.0 /usr/local/lib/perl5/site_perl .) at /opt/karraso/statystyki/
> ul.pl line 3.
> BEGIN failed--compilation aborted at /opt/karraso/statystyki/ul.pl
> line 3.
>
> Z linii komend wszystko jest ok.
> Dlaczego cron nie wykonuje polecenia z /opt/perl5.8.0/bin/perl ? Tylko
> zagląda do innych katalogów?
> Jak go zmusić aby wykonał perl z /opt/perl5.8.0/bin/perl?

z tego co widzę odpalasz na solarisie.
przyczyna problemu jest zatem jasna: solaris.

żartuję (trochę).

przepuść to przez "truss" - albo podepnij truss to crond, albo zmien
crontaba by odpalał poprzed trussa
i zobacz co się dzieje.

ciężko mi wyrokować bez jakiejkolwiek wiedzy o systemie.

depesz

-- 
The best thing about modern society is how easy it is to avoid contact with it.
                                                             http://depesz.com/
Re: crontab - perl
#52431
Author: Jarosław Lubczyński
Date: Mon, 12 Mar 2012 17:51
48 lines
2851 bytes
W dniu 2012-03-12 14:16, karraso pisze:
> .....
>>
>> To nie cron zagląda tylko perl. I nie odnajduje w nich modułu
>> Time::Local. Pytanie - czy ten moduł jest zainstalowany? Moduł ten
>> należy do zestawu modułów standardowych przynajmniej od wersji 5.6 [1],
>> więc raczej powinien być na pokładzie. Czy jak uruchomisz skrypt ul.pl z
>> konsoli to działa jak należy? Jeżeli tak, to znajdź find'em położenie
>> pliku Local.pm i sprawdź, czy jest on w podkatalogu Time w jednej ze
>> ścieżek podanych wyżej.
>>
> Witam
> Sprawdzałem i mam Local.pm w /opt/perl5.8.0/lib/perl5/5.8.0/Time
> ale dlaczego w logu mam
> w  Can't locate Time/Local.pm in @INC (@INC contains: /usr/local/lib/
> perl5/5.8.0/sun4-solaris /usr/local/lib/perl5/5.8.0 /usr/local/lib/
> perl5/site_perl/5.8.0/sun4-solaris /usr/local/lib/perl5/site_perl/5
> .8.0 /usr/local/lib/perl5/site_perl .) at /opt/karraso/statystyki/
> ul.pl line 3.
> BEGIN failed--compilation aborted at /opt/karraso/statystyki/ul.pl
> line 3.
> Pozdrawiam

Jak widać perl szuka bibliotek tak, jakby był zainstalowany w
	/usr/local/lib/
podczas gdy tak naprawdę jego katalog to
	/opt/perl5.8.0/lib
Czemu? Nie wiem. Może jakaś specyfika Solarisa, może Perla 5.8.0. Jak 
dla mnie sposoby są dwa:

1. Zapewne katalog
	/usr/local/lib/perl5
nie istnieje. Wtedy możesz założyć linka symbolicznego:
	ln -s /opt/perl5.8.0/lib/perl5 /usr/local/lib/perl5

2. W crontab'ie możesz ustawić zmienną
	PERL5LIB=/opt/perl5.8.0/lib/perl5/5.8.0

ale pierwszy wariant wydaje mi się bardziej uniwersalny.

-- 
Pozdrawiam
Jarek Lubczyński
(eljot<NULL>90125 at gmail dot com)
Nawiasy trójkątne z zawartością zbędne są

There are 10 kinds of people:
Those who understand binary and those who don't
Re: crontab - perl
#52436
Author: karraso
Date: Mon, 12 Mar 2012 19:12
61 lines
3435 bytes
On 12 Mar, 18:51, Jarosław Lubczyński <gu...@who.com.pl> wrote:
> W dniu 2012-03-12 14:16, karraso pisze:
>
>
>
>
>
>
>
>
>
> > .....
>
> >> To nie cron zagląda tylko perl. I nie odnajduje w nich modułu
> >> Time::Local. Pytanie - czy ten moduł jest zainstalowany? Moduł ten
> >> należy do zestawu modułów standardowych przynajmniej od wersji 5.6 [1],
> >> więc raczej powinien być na pokładzie. Czy jak uruchomisz skrypt ul.pl z
> >> konsoli to działa jak należy? Jeżeli tak, to znajdź find'em położenie
> >> pliku Local.pm i sprawdź, czy jest on w podkatalogu Time w jednej ze
> >> ścieżek podanych wyżej.
>
> > Witam
> > Sprawdzałem i mam Local.pm w /opt/perl5.8.0/lib/perl5/5.8.0/Time
> > ale dlaczego w logu mam
> > w  Can't locate Time/Local.pm in @INC (@INC contains: /usr/local/lib/
> > perl5/5.8.0/sun4-solaris /usr/local/lib/perl5/5.8.0 /usr/local/lib/
> > perl5/site_perl/5.8.0/sun4-solaris /usr/local/lib/perl5/site_perl/5
> > .8.0 /usr/local/lib/perl5/site_perl .) at /opt/karraso/statystyki/
> > ul.pl line 3.
> > BEGIN failed--compilation aborted at /opt/karraso/statystyki/ul.pl
> > line 3.
> > Pozdrawiam
>
> Jak widać perl szuka bibliotek tak, jakby był zainstalowany w
>         /usr/local/lib/
> podczas gdy tak naprawdę jego katalog to
>         /opt/perl5.8.0/lib
> Czemu? Nie wiem. Może jakaś specyfika Solarisa, może Perla 5.8.0. Jak
> dla mnie sposoby są dwa:
>
> 1. Zapewne katalog
>         /usr/local/lib/perl5
> nie istnieje. Wtedy możesz założyć linka symbolicznego:
>         ln -s /opt/perl5.8.0/lib/perl5 /usr/local/lib/perl5
>
> 2. W crontab'ie możesz ustawić zmienną
>         PERL5LIB=/opt/perl5.8.0/lib/perl5/5.8.0
>
> ale pierwszy wariant wydaje mi się bardziej uniwersalny.
Wariant nr 2
Nie jestem ekspertem w systemach linuksowych ale jak rozumiem to w
cronie  np
10 * * * *  /jakis/wpis
15 * * * * /kolejny/wpis
PERL5LIB=/opt/perl5.8.0/lib/perl5/5.8.0
40 * * * * /opt//sciezka do skryptu.pl

czy to jest ok?

Wariant nr 1 -> sprawdzę
Pozdrawiam
Re: crontab - perl
#52414
Author: Jarosław Lubczyński
Date: Mon, 12 Mar 2012 19:37
47 lines
2707 bytes
W dniu 2012-03-12 20:12, karraso pisze:
> On 12 Mar, 18:51, Jarosław Lubczyński<gu...@who.com.pl>  wrote:
>> W dniu 2012-03-12 14:16, karraso pisze:
>>
[...]
>>
>> 1. Zapewne katalog
>>          /usr/local/lib/perl5
>> nie istnieje. Wtedy możesz założyć linka symbolicznego:
>>          ln -s /opt/perl5.8.0/lib/perl5 /usr/local/lib/perl5
>>
>> 2. W crontab'ie możesz ustawić zmienną
>>          PERL5LIB=/opt/perl5.8.0/lib/perl5/5.8.0
>>
>> ale pierwszy wariant wydaje mi się bardziej uniwersalny.
> Wariant nr 2
> Nie jestem ekspertem w systemach linuksowych ale jak rozumiem to w
> cronie  np
> 10 * * * *  /jakis/wpis
> 15 * * * * /kolejny/wpis
> PERL5LIB=/opt/perl5.8.0/lib/perl5/5.8.0
> 40 * * * * /opt//sciezka do skryptu.pl
>
> czy to jest ok?

Ze wstydem się przyznam, że nie wiem, czy w crontabie można przeplatać 
ustawienia zmiennych środowiskowych i wpisów w tablicy cron'a - 
natomiast *na* *pewno* (no cóż, chyba, że Solaris ma swoje widzimisię) 
sposób zadziała, jak definicje zmiennych środowiskowych (a więc i 
PERL5LIB) ustawisz na początku crontab'a (przed deklaracją pierwszego 
zadania).

>
> Wariant nr 1 ->  sprawdzę
>

Nie znam Solarisa, ale położenie perla wydaje mi się, hmmm, nieco 
dziwne. Może link, który proponuję założyć istniał, tylko został skasowany?

-- 
Pozdrawiam
Jarek Lubczyński
(eljot<NULL>90125 at gmail dot com)
Nawiasy trójkątne z zawartością zbędne są

There are 10 kinds of people:
Those who understand binary and those who don't
Re: crontab - perl
#52421
Author: karraso
Date: Tue, 13 Mar 2012 08:42
23 lines
2048 bytes
Witam
Zrobiłem tak
w crontab
 PATH=/usr/local/bin:/usr/bin:/usr/sbin:/usr/lib; /ścieżka do skryptu
plik.pl

oraz w samym skrypcie
BEGIN {
     push @INC,(  '/opt/perl5.8.0/lib/perl5/5.8.0/sun4-solaris',
           '/'/opt/perl5.8.0/lib/perl5/5.8.0',
           '/usr/local/lib/perl5/5.8.0/sun4-solaris',
	   '/usr/local/lib/perl5/5.8.0',
	   '/usr/local/lib/perl5/site_perl/5.8.0/sun4-solaris',
  	   '/usr/local/lib/perl5/site_perl/5.8.0',
	   '/usr/local/lib/perl5/site_perl' );
}

I działa wybornie
Bardzo pomogła mi strona
http://www.itauthor.com/2010/08/03/gotchas-with-running-a-perl-script-as-a-cron-job/

Wielkie dzięki za pomoc to dzięki wam poszedłem w stronę crontaba  :)
Pzdr
Re: crontab - perl
#52422
Author: Jarosław Lubczyński
Date: Tue, 13 Mar 2012 13:02
50 lines
2941 bytes
W dniu 2012-03-13 09:42, karraso pisze:
> Witam
> Zrobiłem tak
> w crontab
>   PATH=/usr/local/bin:/usr/bin:/usr/sbin:/usr/lib; /ścieżka do skryptu
> plik.pl
>
> oraz w samym skrypcie
> BEGIN {
>       push @INC,(  '/opt/perl5.8.0/lib/perl5/5.8.0/sun4-solaris',
>             '/'/opt/perl5.8.0/lib/perl5/5.8.0',
>             '/usr/local/lib/perl5/5.8.0/sun4-solaris',
> 	   '/usr/local/lib/perl5/5.8.0',
> 	   '/usr/local/lib/perl5/site_perl/5.8.0/sun4-solaris',
>    	   '/usr/local/lib/perl5/site_perl/5.8.0',
> 	   '/usr/local/lib/perl5/site_perl' );
> }

Szczerze mówiąc to rozwiązanie nie bardzo mi się podoba, bo sprawia, że 
skrypt staje się nieprzenośny (nie uruchomi się nawet na drugiej 
maszynie z Solarisem, jeżeli tylko będzie tam zainstalowana inna wersja 
Perla - np. 5.8.8. zamiast 5.8.0). A efekt wstawienia ścieżek do tablicy 
@INC uzyskasz również ustawiając zmienną PERL5LIB bez konieczności 
dłubania w skrypcie. Podobnie założenie linka symbolicznego załatwiłoby 
sprawę. Ale skoro sposób działa i jesteś zadowolony, to nie mam więcej 
uwag :).

A nie, mam jedna drobną: powyższy blok BEGIN nie skompiluje się (błąd 
składni) :)

>
> I działa wybornie
> Bardzo pomogła mi strona
> http://www.itauthor.com/2010/08/03/gotchas-with-running-a-perl-script-as-a-cron-job/

Parę informacji z tej strony dla mnie również było cennych :)

>
> Wielkie dzięki za pomoc to dzięki wam poszedłem w stronę crontaba  :)
> Pzdr


-- 
Pozdrawiam
Jarek Lubczyński
(eljot<NULL>90125 at gmail dot com)
Nawiasy trójkątne z zawartością zbędne są

There are 10 kinds of people:
Those who understand binary and those who don't
Re: crontab - perl
#52424
Author: karraso
Date: Wed, 21 Mar 2012 13:53
9 lines
1996 bytes
Witam
Starałem się z PERL5LIB  ale nic z tego nie wychodziło.
Zawsze wywalał mi w cronie ten sam błąd.
Dlatego za radą którą przeczytałem na załączonym linku problem znikł.
Nie jestem
ekspertem  ani w linuksie ani w perlu jestem zadowolony jak skryt
zaczyna żyć swoim życiem :)
Co do błędu w składni to tak o jeden / był za dużo :) dzięki.
Pozdrawiam
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads