如何使用cron作业调用包含系统命令的ruby脚本?

时间:2009-11-16 09:57:30

标签: ruby cron

我有一个包含http://gist.github.com/235833等系统命令的ruby脚本,当我从shell运行这个脚本时,它工作正常,但是当我将它添加到我的cron作业列表中时,它不再起作用, cron的工作就像:

  

10 / * * * * * cd / home / hekin; / usr / bin / ruby​​ my_script.rb

知道我做了什么出了什么问题?谢谢。

3 个答案:

答案 0 :(得分:1)

  

谢谢大家的回答。

     

这是我的错误。

     

由于我在本地机器上使用ssh密钥转发,当我从shell执行脚本时,ssh密钥转发相关的环境变量都在那里,但是从cron作业上下文中,缺少那些环境变量。 / p>

答案 1 :(得分:0)

尝试将可能出错的事情分开。我能想到的是:

  • cron语法 - 是合法的时间值还是适合你的shell?
  • 权限 - 执行相关目录和文件的权限和读取权限
  • 引用 - cron涵盖的范围是什么?它只运行第一个命令吗?

为了解剖这个问题,我建议你先运行一个非常简单的cron工作,比如'ls'。接下来运行一个单线程脚本。接下来将命令嵌入shell脚本文件中。沿着这些方向,你应该找到问题。

答案 2 :(得分:0)

问题在于您的环境。在你的shell中进行测试时,它的设备齐全,并受到你的shell环境的推动。在cron下运行时非常非常简单。

目的地在哪里“。”为你的脚本?我猜它会是“/”并且可能不是“$ HOME”因此你的脚本将无法在该位置写入并失败。尝试使用绝对路径作为目的地。