如何 运行 来自 crontab 的脚本并避免 "LoadError"

How to run a script from crontab and avoid "LoadError"

我想要 运行 我的脚本来自 Mac OS 上的 crontab,但我收到一个错误:

ruby: Operation not permitted -- /Users/vitalii/Desktop/Home/update/update.rb (LoadError)

我对 cron 任务和设置的偏好是使用 rvm cron setup:

创建的
#sm start rvm
PATH="/Users/vitalii/.rvm/gems/ruby-2.4.1/bin:/Users/vitalii/.rvm/gems/ruby-2.4.1@global/bin:/Users/vitalii/.rvm/rubies/ruby-2.4.1/bin:/Users/vitalii/.rvm/gems/ruby-2.4.1/bin:/Users/vitalii/.rvm/gems/ruby-2.4.1@global/bin:/Users/vitalii/.rvm/rubies/ruby-2.4.1/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/Applications/Postgres.app/Contents/Versions/latest/bin:/Users/vitalii/.rvm/bin"
GEM_HOME='/Users/vitalii/.rvm/gems/ruby-2.4.1'
GEM_PATH='/Users/vitalii/.rvm/gems/ruby-2.4.1:/Users/vitalii/.rvm/gems/ruby-2.4.1@global'
MY_RUBY_HOME='/Users/vitalii/.rvm/rubies/ruby-2.4.1'
IRBRC='/Users/vitalii/.rvm/rubies/ruby-2.4.1/.irbrc'
RUBY_VERSION='ruby-2.4.1'
#sm end rvm

* * * * * ruby /Users/vitalii/Desktop/Home/update/update.rb >> /Users/vitalii/Desktop/logfile.txt 2>&1

我用chmod 777给每个文件赋予了执行权限,但是没有任何变化,还是重复错误。

文件 update.rb 的内容是

puts 'Hello, World!!!'

有人可以告诉我发生了什么事以及我做错了什么吗?

通过 crontab -e 设置 crontab 作业或将它们放在 /etc/crontab

中有一点不同
$ crontab -e
# m h dom mon dow command
  * *   *  *  *   echo ok

$ nano /etc/crontab
# m h dom mon dow user command
  * *   *  *  *   root echo ok

是这样吗?

我找到了解决方案,因为我使用的是 Mojave。
我需要在系统中进行额外的设置。谁曾想到 ... enter link description here

事实证明这是个问题,因为您需要允许 cron 的权限。 并为 crontab -e 更正 运行 命令,this
* * * * * /bin/bash -l -c 'ruby /Users/vitalii/Desktop/Home/update/update.rb'