Tag: cron

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

我有一个bash脚本运行一个ruby脚本来获取我的twitter提要。 ## /home/username/twittercron #!/bin/bash cd /home/username/twitter ruby twitter.rb friends 它在命令行中成功运行。 /home/username/twittercron 但是当我尝试将其作为cronjob运行时,它运行但无法获取提要。 ## crontab -e */15 * * * * * /home/username/twittercron 该脚本已经是chmod + x。 不知道为什么会这样。 有任何想法吗?

cron crawler使用Ruby中的Google API将数据插入Google电子表格的授权问题

我的项目是抓取某些网络数据,并在每天早上9点将它们放入我的Google电子表格中。 它必须获得读写权限的授权。 这就是为什么下面的代码位于顶部。 # Google API CLIENT_ID = blah blah CLIENT_SECRET = blah blah OAUTH_SCOPE = blah blah REDIRECT_URI = blah blah # Authorization_code def get_authorization_code client = Google::APIClient.new client.authorization.client_id = CLIENT_ID client.authorization.client_secret = CLIENT_SECRET client.authorization.scope = OAUTH_SCOPE client.authorization.redirect_uri = REDIRECT_URI uri = client.authorization.authorization_uri Launchy.open(uri) # Exchange authorization code for access token $stdout.write “Enter authorization […]

我如何每天validation一篇post?

我正在尝试创建一个validation,以确保每天发布一个post,从00:00开始24小时。 怎么能在Rails中完成呢? 我做了以下但我不知道在哪里放today方法。 更简单的替代品非常受欢迎。 def today where(:created_at => (Time.now.beginning_of_day..Time.now)) end 然后我在文章模型中添加了validation: validate :time_limit, :on => :create 并在同一个模型中定义了time_limit ,如下所示: def time_limit if user.articles.today.count >= 1 errors.add(:base, “Exceeds daily limit”) end 但我继续在创建操作中遇到“无方法”错误。 undefined method `today’ 我不确定在哪里放这种方法。

RVM没有用cron设置环境

我正忙着用cron和RVM执行脚本/运行器。 我相信问题在于在运行跑步者之前没有设置rvm环境。 目前我正在抛出错误/ bin / sh:1.sql:命令找不到比我早先得到的更多,所以我想这很好。 我已经读过这个post需要在每个cron作业之前设置rvm环境,但我还是没有真正得到它。 我认为部分问题是错误报告。 到目前为止,这是我的跑步者。 */1 * * * * * /bin/bash -l -c ‘rvm use 1.8.7-p352@2310; cd development/app/my_app2310 && script/runner -e development “Mailer.find_customer”‘ 根据上面的链接,我试着制作一个rvm_cron_runner。 我创建了一个文件并将其放入其中: #!/bin/sh source “/Users/dude/.rvm/scripts/rvm” exec $1 然后我将我的crontab更新为此。 */1 * * * * * /bin/bash -l -c ‘/Users/dude/development/app/my_app2310/rvm_cron_runner; rvm use 1.8.7-p352@2310; cd development/app/my_app2310 && script/runner -e development […]

在Ruby脚本中需要Ruby Gem打破了Cron作业执行

我正在尝试使用Gems运行一个cron作业。 我已经通过RVM安装了ruby,当我需要一个gem时它打破了cron的工作。 我试过要求两个完全不同的gem,PG / Pry,当我需要时,cronjob没有完成。 这是“测试代码”工作正常: open(‘/home/log.log’, ‘a’) do |f| f.puts Time.now.to_s end 以下是我设置cronjob的方法: * * * * * /usr/local/rvm/rubies/ruby-2.0.0-p247/bin/ruby /home/test1.rb 我每分钟都能看到新的输出。 当我在顶部添加一个require gem行时,它会中断,但只有在通过cron运行时: require ‘pg’ open(‘/home/log.log’, ‘a’) do |f| f.puts Time.now.to_s end cronjob运行(我可以看到它在sys日志中执行),但从未完成(没有输出进入文本文件)。 我在两个单独的服务器上尝试了这个,一个是Debian,一个是CentOS,两者都有相同的问题。 奇怪的是,这只会影响cron作业,如果我从控制台运行相同的ruby文件:/home/test1.rb它会正常工作。 任何帮助都会很棒。

在RVM环境中的Ruby cron作业中找不到Gem

我正在尝试在RVM环境中运行10.5的旧PPC机器上运行一个简单的ruby脚本。 搜索SO,我按照这篇文章中选择的答案。 这是cron中的一行: SHELL=/bin/bash 00 * * * * BASH_ENV=~/.bash_profile && /bin/bash -c ‘~/deggy/onlineGW.rb’ 这个命令在用户山姆根的Bash中运行良好。 这是我脚本的重要部分: #!/usr/bin/env ruby require ‘open-uri’ require ‘nokogiri’ … 这是来自cron的错误输出: X-Cron-Env: X-Cron-Env: X-Cron-Env: X-Cron-Env: X-Cron-Env: Date: Mon, 6 Jan 2014 03:15:00 -0600 (CST) /Users/sam/deggy/onlineGW.rb:3:in `require’: no such file to load — nokogiri (LoadError) 好的,因为我正在运行RVM,我已将默认ruby设置为1.9.3,如上所述,该命令在终端中执行,但不在cron中执行。 还有其他环境吗? 很明显,我忽略了一些东西。 山姆,请帮我看看

在cron中设置路径,以便它可以找到ruby

我的ruby在/ usr / local / bin中。 无论何时找不到它,并且在我的cron文件顶部设置PATH也不起作用,我想是因为每当在新的bash实例中运行命令时。 #这不起作用 PATH = / bin中:/ sbin目录:在/ usr / bin中:/ usr / sbin目录:在/ usr / local / sbin中 #Start每当生成任务时:foo 0 * * * * / bin / bash -l -c’cd / srv / foo / releases / 20110429110637 && script / rails runner -e production’\”ActiveRecord :: SessionStore :: Session.destroy_recent(15)’\’ […]

Rails – 每当gem – 动态值

可以说我有这样的cronjob: every 1.day, :at => ‘4:30 am’ do runner “MyModel.task_to_run_at_four_thirty_in_the_morning” end 虽然,我想让’1.day’更具动态性,例如通过管理页面中的表单更改值。 然后它可能看起来像这样: every Constant.find(2).value, :at => ‘4:30 am’ do 要么 @const = Constant.find(2) every @const.span, :at => @const.time do 任何人都可以想出如何使这项工作? 显然,这样做的原因是我可以使用存储在我网站上的数据库中的值,就像消息说的那样

Cron工作不在Whenever gem工作

我有一个包含大量任务的应用程序,每天我都想运行一个cron作业,为数据库中的每个Task创建一个DayTask。 任务has_many DayTasks和这些daytasks是用户每天将要检查的。 我正在使用随时随地的gem,但它似乎根本没有运行。 有任何想法吗? 配置/ schedule.rb every 1.day, :at => “12:01am” do runner “Task.generate_tasks_for_day” end Task.rb def generate_tasks_for_day Task.all.each do |task| task.day_tasks.create(:target_date => Date.today) end end 运行’when命令’的结果 1 0 * * * /bin/bash -l -c ‘cd /home/grant/rails_projects/GoalTwist && script/rails runner -e production ‘\”Task.generate_tasks_for_day’\”’ 注意:每次我想测试运行时,我一直在更改config / schedule.rb中的时间。

如何编写Rake任务将数据导入Rails应用程序?

目标:使用CRON任务(或其他预定事件)通过从现有系统每晚导出数据来更新数据库。 在现有系统中创建/更新/删除所有数据。 该网站没有直接与该系统集成,因此rails应用程序只需要反映数据导出中出现的更新。 我有一个.txt产品的.txt文件,如下所示: “1234”:”product name”:”attr 1″:”attr 2″:”ABC Manufacturing”:”2222″ “A134″:”another product”:”attr 1″:”attr 2″:”Foobar World”:”2447″ … 所有值都是用双引号( ” )括起来的字符串,用冒号(:)分隔 领域是: id :唯一ID; 字母 name :产品名称; 任何角色 属性列:字符串; 任何字符(例如,大小,重量,颜色,尺寸) vendor_name :string; 任何角色 vendor_id :唯一供应商ID; 数字 供应商信息在当前系统中未标准化。 这里的最佳做法是什么? 是否可以删除产品和供应商表并在每个周期重写新数据? 或者仅添加新行并更新现有行更好? 笔记: 此数据将用于生成将通过夜间数据库导入持续存在的Orders 。 OrderItems需要连接到数据文件中指定的产品ID,因此我们不能依赖自动递增的主键对于每个导入都是相同的; 需要使用唯一的字母数字ID将products加入order_items 。 理想情况下,我希望导入器规范化供应商数据 我不能使用vanilla SQL语句,所以我想我需要编写一个rake任务才能使用Product.create(…)和Vendor.create(…)样式语法。 这将在EngineYard上实现