Thread View: pl.comp.lang.perl
11 messages
11 total messages
Started by karraso
Mon, 12 Mar 2012 11:31
crontab - perl
Author: karraso
Date: Mon, 12 Mar 2012 11:31
Date: Mon, 12 Mar 2012 11:31
18 lines
1945 bytes
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
Author: Jarosław Lubczyński
Date: Mon, 12 Mar 2012 12:33
Date: Mon, 12 Mar 2012 12:33
47 lines
2655 bytes
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
Author: Jarosław Lubczyński
Date: Mon, 12 Mar 2012 12:55
Date: Mon, 12 Mar 2012 12:55
31 lines
2005 bytes
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
Author: karraso
Date: Mon, 12 Mar 2012 13:16
Date: Mon, 12 Mar 2012 13:16
21 lines
2164 bytes
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
Author: hubert depesz lubaczewski
Date: Mon, 12 Mar 2012 13:55
Date: Mon, 12 Mar 2012 13:55
35 lines
2102 bytes
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
Author: Jarosław Lubczyński
Date: Mon, 12 Mar 2012 17:51
Date: Mon, 12 Mar 2012 17:51
48 lines
2851 bytes
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
Author: karraso
Date: Mon, 12 Mar 2012 19:12
Date: Mon, 12 Mar 2012 19:12
61 lines
3435 bytes
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
Author: Jarosław Lubczyński
Date: Mon, 12 Mar 2012 19:37
Date: Mon, 12 Mar 2012 19:37
47 lines
2707 bytes
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
Author: karraso
Date: Tue, 13 Mar 2012 08:42
Date: Tue, 13 Mar 2012 08:42
23 lines
2048 bytes
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
Author: Jarosław Lubczyński
Date: Tue, 13 Mar 2012 13:02
Date: Tue, 13 Mar 2012 13:02
50 lines
2941 bytes
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
Author: karraso
Date: Wed, 21 Mar 2012 13:53
Date: Wed, 21 Mar 2012 13:53
9 lines
1996 bytes
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