Это может быть проблема $PATH
.Убедитесь, что ваш Perl-скрипт либо находится в месте, указанном $PATH
, либо имеет абсолютный путь в crontab.Это также верно для любого скрипта или программы, которые вы запускаете в скрипте Perl.Переменная $PATH
обычно должна быть установлена внутри файла crontab.
Это может быть файл, используемый в скрипте Perl, имеющий относительный путь, который может работать при выполнении вручную, но не работаетпри запуске cron
(разные рабочие каталоги).
Имеет ли Perl-скрипт разрешения на выполнение (установлен бит режима x
)?В этом нет необходимости, если он запускается с perl /path/to/script.pl
, но произойдет сбой при запуске с /path/to/script.pl
.
РЕДАКТИРОВАНИЕ:
Рекомендации по исправлению:
Добавьте к $PATH
в crontab (для примера сценария /path/to/script.pl
):
PATH=/bin:/usr/bin:/path/to
Не забудьте также включить другие необходимые пути (например, /bin
и /usr/ucb
).
Скорее всего, в файле уже есть определение PATH
.В этом случае просто добавьте к нему свой путь.
В качестве альтернативы, вы можете указать полный путь в строке работы cron, например:
17 * * * * root /path/to/script.pl
Чтобы исправить разрешения:
chmod a+r+x /path/to/script.pl