Cron在主目录而不是文件目录中运行

Chr*_*ung 2 ruby cron rvm

我在stackoverflow中跟踪了一些其他帖子并使用RVM成功设置了cron rvm cron setup并将一些ENV注入crontab文件.

当我在解决为什么dotenv宝石不能正常工作时,我意识到以下几点:

我放置了我test.rb的文件路径,/home/myuser/ruby/test.rb并将crontab文件如下所示:

* * * * * ruby /home/myuser/ruby/test.rb >> /home/myuser/ruby/output.log
Run Code Online (Sandbox Code Playgroud)

当我把test.rb的输出放在Dir.pwd.输出表明rb在/home/myuser/目录而不是/home/myuser/ruby目录中运行.

虽然我通过手动更改路径有一个修补程序.但我想知道为什么会这样.

Paw*_*zak 6

默认情况下,用户的cron任务是从用户的主目录执行的.要从正确的目录执行脚本,您必须"cd"到它.

考虑将您的crontab更改为:

* * * * * cd /home/myuser/ruby && ruby ./test.rb >> /home/myuser/ruby/output.log
Run Code Online (Sandbox Code Playgroud)

祝好运!