Cron Job не работает для скрипта оболочки или скрипта ruby ​​Mac OS - PullRequest
1 голос
/ 09 ноября 2019

У меня есть скрипт ruby ​​с именем automated_script.rb

У меня также есть скрипт оболочки с именем automated_script.sh

Оба эти файла сейчас находятся на моем рабочем столе.

всякий раз, когда я запускаю ruby automated_script.rb, скрипт работает как положено (все, что он делает, это отправляет текстовое сообщение, используя twilio api)

Это то, что у меня есть в automated_script.sh

#!/bin/zsh

/Users/angelgarcia/.rvm/rubies/ruby-2.6.3/bin/ruby /Users/angelgarcia/Desktop/automated_script.rb 

когда я перехожу на свой рабочий стол в терминале и запускаю, ./automated_script.sh работает.

когда я просто запускаю:

/Users/angelgarcia/.rvm/rubies/ruby-2.6.3/bin/ruby /Users/angelgarcia/Desktop/automated_script.rb 

в терминале, это тоже работает.

Однако , в моем crontab у меня есть это:

* * * * * /Users/angelgarcia/Desktop/automated_script.sh

Это не работает, как ожидалось.

Просто запустить это работает: /Users/angelgarcia/Desktop/automated_script.sh Но по какой-то причине, когда я помещаю его в crontab, он запускается не каждую минуту.

Когда я запускаю crontab -l в моем терминале, я получаю это:

* * * * * /Users/angelgarcia/Desktop/automated_script.sh

Так что я знаю, что он активен.

Любая помощь приветствуется, спасибо!

РЕДАКТИРОВАТЬ

вот что внутри моего файла ruby ​​

require 'twilio-ruby'

account_sid = 'xxx'
auth_token = 'xxx'
@client = Twilio::REST::Client.new account_sid, auth_token

@client.messages.create(
  from: '999',
  to: '999',
  body: message 
)

1 Ответ

0 голосов
/ 10 ноября 2019

Вам не нужна оболочка для запуска ruby ​​из cron. Вы должны иметь возможность просто передать ruby ​​и файл в ваш crontab.

* * * * * ruby /Users/angelgarcia/Desktop/automated_script.rb 

Обратите внимание, что при этом будет использоваться любая установленная по умолчанию версия ruby ​​системы.

...