как создать задание cron для запуска сценария ruby?

Я хочу создать задание cron для запуска сценария ruby. вот что я вложил в кронтаб.

2 * * * * ruby /home/mark/project/script.rb >> /home/mark/cronOutput.txt

но не работает. Я думаю, что есть некоторые проблемы с загрузкой среды, когда cron работает как root.

пожалуйста, помогите.

4 ответов


Если ваш ruby находится в нестандартных путях, то лично мне нравится обернуть мои вызовы ruby в сценарий оболочки, тем самым гарантируя, что все пути и т. д. мои потребности программы ruby установлены правильно и запланировать сценарий в crontab. Сделайте что-нибудь вроде

2 * * * * /home/mark/project/ruby_wrapper_sh >> /home/mark/cronOutput.txt 2>&1

и ваш /home / mark/project / ruby_wrapper_sh должен прочитать что-то вроде

#!/bin/bash

. ~mark/.bash_profile 
`ruby /home/mark/project/script.rb`

проверьте, когда (https://github.com/javan/whenever) драгоценный камень для использования заданий cron в Rails


Если вы используете RVM, вы можете просто сделать:

rvm cron setup 

ссылка: https://coderwall.com/p/vhv8aw/getting-ruby-scripts-working-with-bundler-rvm-and-cron


работа на centos

в терминале выполнить # which ruby который находит ваш ruby path

пример вывода

/ usr/bin / ruby

затем вы можете редактировать свой cronjob, используя crontab-e

* * * * * /usr/bin/ruby /home/mark/project/script.rb

и сохранить, это просто работает на моем сервере centos. Вы можете проверить код сначала с помощью этой команды, прежде чем редактировать cronjob

#/usr/bin/ruby /home/mark/project/script.rb

он должен работать в первую очередь, тогда вы можете надеть crontab