无法让Cron处理这个Ruby脚本

时间:2018-03-08 21:09:23

标签: ruby cron

我试图运行这个cron

49 15 * * * ruby  /Users/nikosalt/Desktop/playing/twilio_send_text.rb

在我的ruby脚本twilio_send_text.rb上,如下所示:

require 'rubygems'
require 'twilio-ruby'

account_sid = 'AC5179a0c973e8a059da8676877887f65'
auth_token = 'my twilio auth token'
client = Twilio::REST::Client.new account_sid, auth_token


from = '+15146137221' # Your Twilio number
to = '+15142383468' # Your mobile phone number

client.messages.create(
from: from,
to: to,
body: "hello from cron"
)

当我运行cron时。我一直收到这个错误:

Subject: Cron <niko@nikolass-MacBook-Pro> ruby  
/Users/nicolassaltarelli/Desktop/playing/twilio_send_text.rb
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=nicolassaltarelli>
X-Cron-Env: <USER=nicolassaltarelli>
X-Cron-Env: <HOME=/Users/nicolassaltarelli>
Date: Thu,  8 Mar 2018 16:05:00 -0500 (EST)
  

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in`requirement':无法加载此类文件 - twilio -ruby(LoadError)

     

来自/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in`requirement'

     

来自/Users/nicolassaltarelli/Desktop/playing/twilio_send_text.rb:2:in`'

我希望能帮助解决这个问题。

2 个答案:

答案 0 :(得分:2)

如果您使用的是rbenv,则需要为cron创建一个包装器,例如here所述。

最有可能发生的事情是,您的计算机上有2个红宝石口译员:rbenv管理的口译员,用于开发和运行脚本在控制台上;然后你得到了你的系统ruby,这很可能是由cron调用的。这两个红宝石很可能有不同的版本,并安装了不同的宝石。

或者,您可以切换到系统ruby并安装twilio-ruby

答案 1 :(得分:1)

安装twilio-ruby gem。

gem install twilio-ruby

这将解决您的问题。

Cron任务将是:

49 15 * * * /bin/bash -l -c 'ruby /Users/nikosalt/Desktop/playing/twilio_send_text.rb'