Witaj na blogu prowadzonym przez Sebana. Spisuję tutaj swoje uwagi na różny temat. Przeważają tematy związane z Internetem, popieranymi przeze mnie rozwiązaniami dotyczącymi wykorzystania komputerów, oraz kilka innych.

Crontab i skrypty Perla

27 listopada 2006 | Klucze: linux, programowanie
Dodaj komentarz. trackback

Jakiś czas spędziłem na pisaniu pewnego skryptu w Perlu. Skrypt sam w sobie raczej prosty i nic ciekawego o nim napisać nie mogę. Sprawa skąplikowała się gdy musiałem ten skrypt uruchamiać co jakiś czas. Naturalnym było dla mnie umieszczenie wywołania skryptu w crontabie. Na początku było zdziwienie, potem zaciekawienie, na końcu frustracja, że pomimo poprawnych wpisów skrypt się nie wykonuje. Troche poszukiwań w sieci dało mi odpowiedź. Cron nie loguje się jako użytkownik a tylko działa jako on (z jego prawami). W takiej sytuacji skrypt nie ma do dyspozycji odpowiednich zmiennych środowiskowych np. nazwy użytkownika, zmiennej PATH. Zatem skrypt nie mógł korzystąc z zewnętrznych programów, nie było mowy o poprawnym działaniu.

Rozwiązałem to w dość prosty sposób wykorzystując tablicę ENV. W niej są przechowywane zmienne środowiskowe takie jak $ENV{'PATH'}. Zmodyfikowałem początek skryptu dopisując $ENV{'PATH'} = "/bin:/usr/bin";. Zadziałało.


KOMENTARZE