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

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

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

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

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Q&A

1回答

2094閲覧

laravel6でタスクスケジュールが実行されない。

ohmoto

総合スコア5

cron

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

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

0グッド

0クリップ

投稿2021/03/28 05:02

編集2021/03/28 05:52

現在、laravelのタスクスケジュールの練習をしています。
この記事を参考にしています。
ターミナル上で、php artisan testcronはきちんと実行されます。

問題

cronが動いておらずログが更新されない。

cron

1* * * * * cd /Users/ke/Desktop/laravelAuth/sampleproject/ && php artisan schedule:run >> /dev/null 2>&1

検証したこと

cronがまず動くかどうか

cronに* * * * * echo 'hogehoge' >> ~/hoge.txtと設定して検証しました。
こちらはうまく実行され、ログが更新されました。

cronに記述しているプログラムは動くか

ターミナル上で、
$ cd /Users/ke/Desktop/laravelAuth/sampleproject/ && php artisan schedule:run >> /dev/null 2>&1
と叩くとうまく実行され、ログが更新されました。

コード

Kernel

1<?php 2 3namespace App\Console; 4 5use Illuminate\Console\Scheduling\Schedule; 6use Illuminate\Foundation\Console\Kernel as ConsoleKernel; 7 8class Kernel extends ConsoleKernel 9{ 10 /** 11 * The Artisan commands provided by your application. 12 * 13 * @var array 14 */ 15 protected $commands = [ 16 Commands\WriteLog::Class, 17 ]; 18 19 /** 20 * Define the application's command schedule. 21 * 22 * @param \Illuminate\Console\Scheduling\Schedule $schedule 23 * @return void 24 */ 25 protected function schedule(Schedule $schedule) 26 { 27 // $schedule->command('inspire') 28 // ->hourly(); 29 $schedule->command('testcron') 30 ->everyMinute(); 31 } 32 33 /** 34 * Register the commands for the application. 35 * 36 * @return void 37 */ 38 protected function commands() 39 { 40 $this->load(__DIR__.'/Commands'); 41 42 require base_path('routes/console.php'); 43 } 44}

WliteLog

1<?php 2 3namespace App\Console\Commands; 4 5use Illuminate\Console\Command; 6 7class WriteLog extends Command 8{ 9 /** 10 * The name and signature of the console command. 11 * 12 * @var string 13 */ 14 protected $signature = 'testcron'; 15 16 /** 17 * The console command description. 18 * 19 * @var string 20 */ 21 protected $description = 'write info messages in log file'; 22 23 /** 24 * Create a new command instance. 25 * 26 * @return void 27 */ 28 public function __construct() 29 { 30 parent::__construct(); 31 } 32 33 /** 34 * Execute the console command. 35 * 36 * @return mixed 37 */ 38 public function handle() 39 { 40 logger()->info('This is WriteLog Command.'); 41 } 42}

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

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

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

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

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

guest

回答1

0

>> /dev/null 2>&1

これはエラーログ含めてログ全部捨てるって意味なので、まずここの書き込み先を変更する等してどのようなエラーが発生しているか確認してみてください

投稿2021/03/28 05:15

mikkame

総合スコア5036

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

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

ohmoto

2021/03/28 05:51 編集

mikkameさんご対応ありがとうございます。 cronの >> /dev/null 2>&1 を変更してみたところ、 Could not open input file: artisan と出力されました。 上記の、「cronに記述しているプログラムは動くか」のところでは実行されるのになぜ、cronでは「Could not open input file: artisan」と言われるのでしょうか?
mikkame

2021/03/28 06:13

なぜ、と言われてもわからないのですが、調べる方法としては php artisanじゃなくてls などのコマンドに書き換えて正常にcdされているか、ちゃんとファイルがあるかどうかを調べてていきましょう
ohmoto

2021/03/28 07:01 編集

ありがとうございます。 lsに書き換えてみましたが、何も更新されなくなってしまったので、pwdに変更してみると /Users/ke/Desktop/laravelAuth/sampleproject と更新されました。 そのため、php artisan が走るディレクトリにいるはずだと思います。 Could not open input file: artisan と出力される原因は他にありますでしょうか?
mikkame

2021/03/28 08:36

ls で出ない→ファイルが存在しない ファイルが存在しない→ Could not open input file: artisan で症状は一致しているのではないでしょうか。それを無視して「ディレクトリにいるはずなので大丈夫なはず!」では解決しません。 そのcron視点ではファイルの一覧ができないのであれば、そのcron視点でそのディレクトリの閲覧権限がないのではないでしょうか
ohmoto

2021/03/28 11:15 編集

ありがとうございます。 確認したところ、laravelAuth、sampleprojectともに権限は drwxr-xr-x でしたので閲覧権限はあるようです。 laravelAuth、sampleprojectともに権限を777にしても変化はありませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問