我有一个 ruby 脚本,我想每 10 分钟执行一次,但我丢失了我的脚本,我正在尝试重写它并且无法让它工作。我保留的 cron 设置与它工作时保持不变,但这就是我所拥有的。
rvm_bin_path=/home/usr/.rvm/bin
GEM_HOME=/home/usr/.rvm/gems/ruby-1.9.3-p194
SHELL=/bin/bash
IRBRC=/home/usr/.rvm/rubies/ruby-1.9.3-p194/.irbrc
MY_RUBY_HOME=/home/usr/.rvm/rubies/ruby-1.9.3-p194
__array_start=0
rvm_path=/home/usr/.rvm
escape_flag=1
rvm_prefix=/home/usr
PATH=/home/usr/.rvm/gems/ruby-1.9.3-p194/bin:/home/usr/.rvm/gems/ruby-1.9.3-p194@global/bin:/home/usr/.rvm/rubies/ruby-1.9.3-p$
PWD=/etc
LANG=en_CA.UTF-8
_second=1
rvm_version=1.14.1 (stable)
_first=0
GEM_PATH=/home/usr/.rvm/gems/ruby-1.9.3-p194:/home/usr/.rvm/gems/ruby-1.9.3-p194@global
RUBY_VERSION=ruby-1.9.3-p194
_=/usr/bin/env
*/10 * * * * bash -li -c /home/usr/MeetCal-bot/run-bot.sh
我将 cron 作为 su 运行,这就是为什么我需要添加所有这些环境变量,以确保它具有运行 ruby 所需的一切。我以前使用过所有相同的信息,所以我认为我没有遗漏任何东西
我拥有的 bash 脚本是这样的:
#!/bin/bash
ruby /home/usr/bot/bot.rb >> /home/usr/bot/output.txt
当作业运行时,它会生成 output.txt,但它是空的,我希望会有一些输出,可能是 ruby 错误消息。
作为最后的手段,我为目录做了 chmod 777 * 以尝试修复任何权限问题,但这没有帮助。
如果我以本地用户身份运行 ruby 脚本,它运行良好,没有任何错误,但我似乎无法弄清楚为什么它以我的用户身份运行,而不是以 su 身份运行。