Справочная информация - в системе установлены две разные версии 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?

1 ответ1

0

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .