Часовая работа Cron не будет работать, но будет работать нормально

388
Choppra

Справочная информация - в системе установлены две разные версии ruby. Мне нужно использовать последнюю версию, чтобы запустить этот скрипт монитора, который я создал

Это моя строка crontab:

0 * * * * /usr/local/rvm/rubies/ruby-2.2.1/bin/ruby /home/nexpose/ruby/console_monitor.rb 

Когда я запускаю это:

/usr/local/rvm/rubies/ruby-2.2.1/bin/ruby /home/nexpose/ruby/console_monitor.rb

он работает, как ожидалось, и даже отправляет мне письмо, как задумано

Когда я проверяю системный журнал, я не вижу много. Я вижу, что он выполняется, но ошибки не отображаются ..

 # which ruby /usr/local/rvm/rubies/ruby-2.2.1/bin/ruby # ruby -v ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux] 

Это связано с моей конфигурацией PATH? Я думал, что я обошел это, указав прямо на бинарный файл ruby?

0

1 ответ на вопрос

0
RedGrittyBrick

Помните, что задания cron имеют минимальные настройки среды. У них нет настроек, которые вы видите в интерактивной оболочке. Крон не выполняется ~/.login, ~/.bashrcи т.д.

Чтобы увидеть ошибки из задания cron, я считаю наиболее удобным перенаправить STDOUT и STDERR в файл. например, добавить > /tmp/cron.out 2>&1к записи crontab. В противном случае ваша система может упаковать вывод в сообщение электронной почты владельцу crontab.

Похожие вопросы