【发布时间】:2013-10-11 11:38:52
【问题描述】:
我设置了一个 cron 作业来执行一个 shell 脚本,告诉服务器在每小时 2 分钟后运行一个 ruby 命令 (jekyll build --source /path/to/source/dir --destination /path/to/dest/dir)。当我通过终端运行脚本时,脚本执行得很好,但 cron 似乎没有触发它。我知道 cron 的环境与用户的环境不同,我已将其源路径设置为我的 .bash_profile,其中定义了用户 ruby 环境,根据其他地方的建议。我现在有点不知所措。
crontab 条目如下所示:
2 * * * * . $HOME/.bash_profile ~/jek.sh
FWIW,.bash_profile 的相关部分,在安装 RVM 时自动设置(在共享主机上,同样有些过时的 ruby,在无法写入服务器自己的 ruby 目录的情况下启动并运行 Jekyll 意味着使用RVM;这似乎工作得很好),是:
PATH=$PATH:$HOME/bin
export PATH
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
我是否错误地调用了我的用户配置文件以在 cron 环境中使用?我是否遗漏了语法中明显的东西?任何帮助将不胜感激。
【问题讨论】:
标签: ruby cron crontab jekyll cron-task