Я работаю на нескольких разных дистрибутивах Linux (Fedora 11, CentOS 5 и SuSE 10.2) и часто сталкиваюсь с проблемой, когда новый скрипт, который я хочу запустить как задание cron, работает нормально при вызове напрямую из командной строки, но происходит сбой при вызове из cron из-за небольших изменений в PATH или других необходимых переменных среды.
Есть ли способ протестировать запуск отдельного скрипта, как если бы он запускался из cron, без необходимости запуска всего crontab или использования run-parts для запуска всего каталога cron.daily / .hourly и т. Д.? Я думаю, что я мог бы временно отредактировать свой crontab, чтобы запустить скрипт в ближайшие пару минут, но я бы предпочел более автономное решение, чтобы не рисковать испортить crontab.
Если я запускаю индивидуально запланированное задание cron (отдельная строка в crontab), я планирую его на каждую минуту или каждую минуту, пока я его тестирую. После того, как он протестирован, я отредактирую строку crontab так, чтобы она работала на желаемой частоте.
В качестве дополнительного примечания, если я хочу проверить, что сам cron работает должным образом, и отправить результаты по электронной почте (ОЧЕНЬ важно), я добавлю следующую строку в мой / etc / crontab:
Запускается каждую минуту и пытается
ls
создать каталог, который не существует. Должен по электронной почте сообщение об ошибке каждую минуту. Я комментирую строку, когда у меня это работает.Вернемся к вашему вопросу: вы, вероятно, не хотите изменять существующее задание cron для частого запуска, потому что есть вероятность забыть изменить его обратно, а также потому, что запускаете ваши cron.hourly, cron.daily или cron.wh независимо от того, как часто может иметь побочные эффекты, в зависимости от того, что у вас там. Чтобы убедиться, что вы запускаете скрипт в той же среде, в которой он будет при вызове из cron, я бы рекомендовал изменить мой трюк "ls" выше:
Добавьте строку в ваш crontab, чтобы запустить скрипт напрямую:
Таким образом, вы можете запускать его так часто, как вам нужно, чтобы проверить его.
источник
Я не знаю более прямого решения, но вы можете создать пользователя (скажем, crontest) с privs для вашего скрипта и использовать пользовательский crontab для пользователя 'crontest', чтобы протестировать скрипт (ы), отредактировав чтобы скрипт запускался в ближайшие пару минут.
источник