如何创建一个运行ruby脚本的cron作业?

Sai*_*S M 10 ruby ruby-on-rails crontab

我想创建一个cron作业来运行ruby脚本.这就是我在crontab中放入的内容.

2 * * * * ruby /home/mark/project/script.rb >> /home/mark/cronOutput.txt
Run Code Online (Sandbox Code Playgroud)

但它没有运行.我认为当cron以root身份运行时,环境会出现问题.

请帮忙.

sai*_*ala 9

如果你的ruby在非标准路径中,那么我个人喜欢在shell脚本中包装我的ruby调用,从而确保正确设置我的ruby程序所需的所有路径等,并在crontab中安排脚本.做点什么

2 * * * * /home/mark/project/ruby_wrapper_sh >> /home/mark/cronOutput.txt 2>&1
Run Code Online (Sandbox Code Playgroud)

你的/ home/mark/project/ruby​​_wrapper_sh应该是这样的

#!/bin/bash

. ~mark/.bash_profile 
`ruby /home/mark/project/script.rb`
Run Code Online (Sandbox Code Playgroud)


小智 6

如果您使用的是 RVM,您可以简单地执行以下操作:

rvm cron setup 
Run Code Online (Sandbox Code Playgroud)

参考:https : //coderwall.com/p/vhv8aw/getting-ruby-scripts-working-with-bundler-rvm-and-cron

  • 注意这个命令会替换你的 crontab,如果你有一些 cronjobs,记得使用 `crontab -l > somefile.txt` 备份它们 (2认同)