【问题标题】:Cron (hourly) task to execute a ruby script用于执行 ruby​​ 脚本的 Cron(每小时)任务
【发布时间】:2014-01-14 09:51:21
【问题描述】:

我有一个 ruby​​ 脚本,我已经测试过它可以工作,我想以每小时 cron 的形式运行,但似乎无法正常触发。

我尝试的最后一件事是放置线:

ruby ~/ruby_script.rb

在 /etc/cron.hourly

上述 ruby​​ 脚本位于主目录中:

#!/usr/bin/env ruby

作为它的顶线。

我研究了 ruby​​ 和 cron 资源,但当我只想让脚本在我的 ubuntu 环境中运行时,它们似乎大多用于在 Ruby on Rails 环境中重复执行的任务。我已经仔细检查了 rails 是否也安装了。

在过去的几个月里,我在学习更多关于 ubuntu 的过程中获得了很多乐趣,我将非常感谢我在这里获得的任何帮助。提前谢谢你。

【问题讨论】:

  • 在 crontab 上查看本教程:help.ubuntu.com/community/CronHowto 另请参阅之前的 Stack Overflow 问题:stackoverflow.com/questions/3984134/… 希望对您有所帮助。
  • cron 在有限的环境中运行。 PATH 可能没有按照您的预期设置,因此 /usr/bin/env 不会找到它,即使 cron 能够找到脚本。建议将cron.hourly中的ruby改成rubyinterpeter的绝对路径
  • 同时检查您的系统日志以查看 cron 在运行命令时可能打印的任何错误消息。
  • 我已将 'ruby' 更改为 'path/to/ruby' 基于 'which ruby​​' 将在几个小时内更新的目录。
  • 嗯。行 path/to/ruby path/to/script 不起作用。还有其他想法吗?

标签: ruby cron ubuntu-12.04


【解决方案1】:

尝试使用当前用户 crontab

$ crontab -e

添加新的 cron 作业

0 * * * *  /bin/bash -l -c 'ruby ~/ruby_script.rb'

使用 bash 命令运行有助于在脚本执行期间获取env 变量。

(对于测试将 0 更改为 * - 脚本将尝试每分钟运行一次)

要记录错误,您可以尝试添加命令:

0 * * * *  /bin/bash -l -c 'ruby ~/ruby_script.rb >> ~/ruby_script.log 2>&1 &'

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2013-02-20
    • 1970-01-01
    • 1970-01-01
    • 2013-10-11
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    • 2021-11-27
    • 2010-12-02
    相关资源
    最近更新 更多