質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
cron

cronは、Unix系OS上でデーモンプロセスとして動作する、スクリプトの自動実行が可能なジョブスケジューラです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

1506閲覧

RailsでTwitterのBotの作成中、「whenever --update-crontab」 を実行すると、「指定されたパスが見つかりません」と表示される。

foorin

総合スコア11

cron

cronは、Unix系OS上でデーモンプロセスとして動作する、スクリプトの自動実行が可能なジョブスケジューラです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

2クリップ

投稿2019/02/24 15:39

編集2019/02/25 07:57

前提・実現したいこと

プログラミング初心者です。
Railsで、二分毎に指定の内容をツイートするTwitterのボットを作っています。
ツイッターとRailsのappとの連携には成功していますが、gemのwheneverによるツイートの自動化で立ち止まっています。ここ3日間このエラーを解決する方法について考えていますが、まったく原因が分からないため、今回質問させていただきました。

発生している問題・エラーメッセージ

コマンドプロンプトにて、以下のエラーが発生します。

$ whenever --update-crontab $ 指定されたパスが見つかりません

該当のソースコード

app/models/post.rb ↓

class Post < ApplicationRecord def self.bot require 'twitter' require 'Date' @client = Twitter::REST::Client.new do |config| config.consumer_key = "######" config.consumer_secret = "######" config.access_token = "######" config.access_token_secret = "######" end t = Time.now @client.update("#{t.month}月#{t.day}日#{t.hour}時#{t.min}分") end end

app/config/schedule.rb ↓

require File.expand_path(File.dirname(__FILE__) + "/environment") env :PATH, ENV['PATH'] set :environment, :production set :output, "#{Rails.root}/log/cron.log" every 2.minutes do runner "Post.bot" end

試したこと

post.rbの内容やschdule.rbのログが排出される場所のパスを書き換えたりしましたが、同じ結果になりました。

<追記>
コマンドプロンプトのアプリケーションディレクトリ直下で
$ rails runner -e development "Post.bot"
を叩いた結果、正常にTwitterの方でツイートされているのが確認されました。

また、何故か
$ crontab -l と打っても、
$ 'crontab'は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。

と出力されて実行できません。

バージョン

Ruby 2.4.5
Rails 5.2.2
Whenever 0.10.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

調べた結果、crontab はLinuxのコマンドのために、Windowsでは対応していないようです。恐らく、whenever もcronを取り扱うコマンドであるために、私のWindowsのPCでは使えないようです。

代わりに、crontabと似たコマンドとして、clockwork というコマンドがWindowsで使えるようだったので、使った結果Botを作ることができました。

投稿2019/02/25 13:29

foorin

総合スコア11

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

調べた結果、crontab はLinuxのコマンドのために、Windowsでは対応していないようです。恐らく、whenever もcronを取り扱うコマンドであるために、私のWindowsのPCでは使えないようです。

代わりに、crontabと似たコマンドとして、clockwork というコマンドがWindowsで使えるようだったので、使った結果Botを作ることができました!

投稿2019/02/25 13:27

foorin

総合スコア11

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問