Ruby 如何从crontab运行脚本并避免;“加载错误”;
我想在Mac OS上从crontab运行脚本,但出现错误:Ruby 如何从crontab运行脚本并避免;“加载错误”;,ruby,bash,shell,cron,rvm,Ruby,Bash,Shell,Cron,Rvm,我想在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.
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
是这样吗?通过
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
是这样吗?我找到了解决办法,因为我用的是莫哈韦。
我需要在系统中进行其他设置。谁会想到。。。 这是一个问题,因为您需要允许cron的权限。 并为crontab-e执行正确的run命令,这
***/bin/bash-l-c'ruby/Users/vitalii/Desktop/Home/update/update.rb'
我找到了解决方案,因为我使用了莫哈韦。我需要在系统中进行其他设置。谁会想到。。。 这是一个问题,因为您需要允许cron的权限。 并为crontab-e执行正确的run命令,这
***/bin/bash-l-c'ruby/Users/vitalii/Desktop/Home/update/update.rb'
我以前没有使用过rvm cron安装程序
,是用crontab-e
打开的同一个crontab吗?如果是这样,您可以尝试对环境变量进行注释,并使用完整的ruby路径/bin/ruby
或/home/.rvm/rubies/ruby-x.x/bin/ruby
“和”“非常有用。/Users/vitalii/Desktop/home/update
确实存在吗Home
是可疑的,因为通常我们不会有一个名为Home的目录,但是我们有一个名为$Home
的环境变量,它相当于~
和/Users/vitalii
。请注意,它与您将输出重定向到的位置不同:/Users/vitalii/Desktop/logfile.txt
@theTinMan,Home它是我的主目录项目,是的,我用她来完成我的项目。Logfile.txt将不同,因为它位于不同的位置。@Vitalii:错误消息表示Ruby在加载文件时遇到错误。如果从命令行运行相同的命令,它是否有效?ruby-e'会在你的crontab工作中加入“hello”>>…
吗?我以前没有使用过rvm cron设置
,是用crontab-e
打开的同一个crontab吗?如果是这样,您可以尝试对环境变量进行注释,并使用完整的ruby路径/bin/ruby
或/home/.rvm/rubies/ruby-x.x/bin/ruby
“和”“非常有用。/Users/vitalii/Desktop/home/update
确实存在吗Home
是可疑的,因为通常我们不会有一个名为Home的目录,但是我们有一个名为$Home
的环境变量,它相当于~
和/Users/vitalii
。请注意,它与您将输出重定向到的位置不同:/Users/vitalii/Desktop/logfile.txt
@theTinMan,Home它是我的主目录项目,是的,我用她来完成我的项目。Logfile.txt将不同,因为它位于不同的位置。@Vitalii:错误消息表示Ruby在加载文件时遇到错误。如果从命令行运行相同的命令,它是否有效?ruby-e会在你的crontab工作中加入“hello”>>…
吗?不完全是。问题出在莫哈韦本身,你需要在系统中安装一些设置——不完全是这样。问题出在莫哈韦本身,您需要在系统中安装一些设置