как создать задание 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