проблема crontab при планировании - PullRequest
0 голосов
/ 16 мая 2011

У меня есть скрипт на Perl, и я запланировал его ежедневный запуск через crontab.Скрипт работает нормально, если выполняется.Но при выполнении через crontab он отправляет сообщение об ошибке в мой почтовый ящик.

Есть ли что-то, что я должен изменить, чтобы успешно выполнить скрипт через crontab?

1 Ответ

2 голосов
/ 16 мая 2011
  1. Это может быть проблема $PATH.Убедитесь, что ваш Perl-скрипт либо находится в месте, указанном $PATH, либо имеет абсолютный путь в crontab.Это также верно для любого скрипта или программы, которые вы запускаете в скрипте Perl.Переменная $PATH обычно должна быть установлена ​​внутри файла crontab.

  2. Это может быть файл, используемый в скрипте Perl, имеющий относительный путь, который может работать при выполнении вручную, но не работаетпри запуске cron (разные рабочие каталоги).

  3. Имеет ли 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
...