1

Тема: Запуск perl скрипта в cron

Есть perl скрипт (.cgi), который при прямом к нему обращении нормально исполняется (правда выдаёт 500 ошибку, но выполняет все нужные действия), а при создании задания в cron - не работает.

В cron прописываю только путь до скрипта, т.к. путь до интерпретатора уже указан в скрипте. Вот такое задание:

27 18 * * *
/var/www/user/data/www/site/cgi-bin/script.cgi >/dev/null 2>&1

Перепробовал массу вариаций, но скрипт через крон исполняться не желает. Где подвох? В каком направлении копать?

Ёж - птица гордая, пока не пнёшь - не полетит :)

2

Re: Запуск perl скрипта в cron

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

3

Re: Запуск perl скрипта в cron

afiskon пишет:

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

Т.е. в моём случае сначала кроном запускается этот sh-скрипт, а потом за ним следом через минуту, допустим, .cgi скрипт? Правильно понимаю?

Ёж - птица гордая, пока не пнёшь - не полетит :)

4

Re: Запуск perl скрипта в cron

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

ЗЫ. А вообще use strict; use warnings; + отладочные warn + перенаправление stderr в лог-файл и смотрим, что на самом деле идет не так, как планировалось.

5

Re: Запуск perl скрипта в cron

неа, а вот все и не так smile)) чтобы было так, надо вот так:
27 18 * * * /usr/bin/perl /var/www/user/data/www/site/cgi-bin/script.cgi >/dev/null 2>&1
путь к перлу укажите свой, я взял стандартный для фряхи, крону абсалютно насрать на то что у вас в скрипте уже обьявлен путь к интерпритатору.

6

Re: Запуск perl скрипта в cron

крону абсалютно насрать на то что у вас в скрипте уже обьявлен путь к интерпритатору

Разве обработка #! в начале скрипта не возложена на ОС? А если у меня в bin другие утилиты, написанные на perl, их тоже таким образом в кроне вызывать нужно?

7

Re: Запуск perl скрипта в cron

возложена, но в данном случае это замануха крона, по другому он гад работать не будет