脚本在命令行中成功执行,但不是作为cronjob执行

Jas*_*Ong 5 ruby bash cron

我有一个bash脚本,它运行一个ruby脚本来获取我的twitter提要.

## /home/username/twittercron

#!/bin/bash

cd /home/username/twitter
ruby twitter.rb friends
Run Code Online (Sandbox Code Playgroud)

它在命令行中成功运行.

/home/username/twittercron
Run Code Online (Sandbox Code Playgroud)

但是当我尝试将其作为cronjob运行时,它运行但无法获取提要.

## crontab -e

*/15 * * * * * /home/username/twittercron
Run Code Online (Sandbox Code Playgroud)

该脚本已经是chmod + x.不知道为什么会这样.有任何想法吗?

Jas*_*Ong 11

Ruby版本管理器(rvm)导致了这个问题.我不得不像这样在cron中调用脚本.

*/15 * * * * bash -c 'source /home/username/.rvm/scripts/rvm && /usr/bin/env ruby /home/username/twitter/twitter.rb friends'
Run Code Online (Sandbox Code Playgroud)


spa*_*ovv 9

我认为这可以通过强制bash作为登录shell来完成,所以它来源.bashrc等:

*/15 * * * * * /bin/bash -l -c '/home/username/twittercron'
Run Code Online (Sandbox Code Playgroud)

是一篇关于此的文章.