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

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

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

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

请帮忙。

如果你的ruby在非标准路径中,那么我个人喜欢在shell脚本中包装我的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` 

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

 rvm cron setup 

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

在centos上工作

在你的终端执行# which ruby找到你的ruby路径

示例输出

在/ usr / bin中/ruby

然后你可以使用crontab -e编辑你的cronjob

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

并保存,这只是在我的centos服务器上工作。 在编辑cronjob之前,可以先使用此命令测试代码

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

它应该先工作,然后你可以穿上你的crontab