Как вызвать скрипт ruby, содержащий системную команду с заданием cron? - PullRequest
0 голосов
/ 16 ноября 2009

У меня есть скрипт ruby, содержащий системную команду, например http://gist.github.com/235833,, пока я запускал этот скрипт из оболочки, он работает правильно, но когда я добавил его в свой список заданий cron, он больше не работает Работа cron выглядит так:

10 / * * * * * cd / home / hekin; / usr / bin / ruby ​​my_script.rb

Есть идеи, что не так с тем, что я сделал? Спасибо.

Ответы [ 3 ]

1 голос
/ 16 ноября 2009

Спасибо всем за ваши ответы.

Это моя ошибка.

Поскольку я использую пересылку ключей ssh ​​на локальном компьютере, в то время как я выполнял скрипт из оболочки, все переменные среды, связанные с переадресацией ключей ssh, находятся там, но в контексте задания cron эти переменные среды отсутствуют.

0 голосов
/ 16 ноября 2009

Проблема в вашей среде. Во время тестирования в вашей оболочке она полностью оснащена и улучшена вашей оболочкой. Работая под cron, он очень, очень урезанный.

Где находится пункт назначения "." для вашего сценария? Я предполагаю, что это будет "/" и не может быть "$ HOME", поэтому ваш скрипт не сможет писать в этом месте и завершится неудачно. Попробуйте использовать абсолютный путь для пункта назначения.

0 голосов
/ 16 ноября 2009

Попробуйте отделить вещи, которые могут пойти не так. Вот те, о которых я могу думать:

  • Синтаксис cron - допустимо ли значение времени для вашей оболочки?
  • Разрешения - разрешения на выполнение и разрешения на чтение для соответствующего каталога и файла
  • Цитата - какую сферу охватывает cron? Он запускает только первую команду?

Чтобы разобраться в этом, я предлагаю вам сначала запустить действительно простую работу cron, например, 'ls' Далее запустите однострочный скрипт. Затем вставьте ваши команды в файл сценария оболочки. Где-то в этом направлении вы должны найти проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...