我试图运行这个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`'
我希望能帮助解决这个问题。
答案 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'