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

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

ただいまの
回答率

88.59%

PHPをCRONで実行したときの変数の確認

解決済

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 842

tsubakin

score 19

test.php内で他からデータを取得して呼び出して下記のように
動かしているのですが、これをcronで実行したときに
$filesなど各変数にデータが格納されているか(ちゃんと実行されているか)
確認する方法はどのようにすればよろしいのでしょうか?

※vagrantで実行するとちゃんと格納されたデータは確認できます。

require "test.php";
$dat = array();
foreach(glob('data/*.json') as $file){                                         
  if(is_file($file)){  
    $files = file_get_contents($file);                                              
    $data = mb_convert_encoding($files, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN'); 
 echo $files;
(続く)
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

+2

echoその他の関数で標準出力に出せば、メールで送られてきます。
メールの設定が正しく為されている事が前提ですが。

メールの設定が出来ない場合は、crontab で、

0 0 * * * /usr/bin/php /home/foo/bar.php >/tmp/output 2>&1


のようにファイルに出力します。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/10/26 13:41

    MAILTO=自分のヤフーアドレス@yahoo.co.jp

    PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin

    39 3 * * 1,2,3,4,5 home/vagrant/php_lessons/index.php

    いまはこのような感じになっております。
    さきほど試してみたら
    PHP Notice: Undefined variable: files in /home/vagrant/php_lessons/index.php on line 58
    このように返ってきましたが
    これよろしいでのしょうか?

    キャンセル

  • 2018/10/26 16:19

    警告のメッセージを見る事が出来たと言う事ですね。
    よろしいかどうかは、あなた次第です。
    echoしたものは見えませんか?見えないならechoが実行されていないということでは?

    キャンセル

  • 2018/10/26 16:55

    そうですね。
    たしかにそうですね。
    内容がみえないので実行されてないのでしょうかね。
    echoの場所変えてみたらメール自体が来なくなりました。

    キャンセル

+2

汎用的な方法としては、php の error_log関数を使って、ファイルに保存するとかでしょうかね。

使用例;

error_log( "ログメッセージ\n", 3, "/path/to/debug.log" );

error_log( var_export( $array, true ), 3, "/path/to/debug.log" );


投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/10/26 13:53

    この場合error_logを記載するのは、同じphp内のechoの後に
    追加する形でよろしいのでしょうか?

    あと、そのファイルの内容を確認する場合はどのようにすればよろしいのでしょうか?

    キャンセル

  • 2018/10/26 13:59 編集

    その変数を確認したい場所に ` error_log( 〜〜 ) `と記載してください。複数件ある場合は、文字列の連結をするか error_log を必要な数だけ複数行書いてください。

    $files の値をログに記録したいのであれば、

    error_log( $files ."\n" , 3, "/path/to/debug.log" );

    で、/path/to/debug.log に保存されると思います。

    表示するのは、サーバーにログインできるのであれば、 `cat /path/to/debug.log ` で表示できますし、 ftp 等であれば、/path/to/debug.log ファイルをお手元のパソコンにダウンロードして、エディタ等で確認してください。

    なお、 /path/to/debug.log のファイル名は、一例ですので、ご自身の環境に合わせてください。

    キャンセル

  • 2018/10/26 16:58

    ありがとうございます
    サーバーログインできないと思うのでftpの方にしようかと思います
    ffftpをやってみようかと思いましたが、インストール後うまく設定できませんでしたのでまた別でやってみます。

    キャンセル

+1

CLIモードで動作させるのでしょうか?
標準出力しているのであればロガーでログに保持するか
メールなどで指定ユーザーにおくればいいでしょう

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/10/26 13:42

    MAILTO=自分のヤフーアドレス@yahoo.co.jp

    PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin

    39 3 * * 1,2,3,4,5 home/vagrant/php_lessons/index.php

    いまはこのような感じになっております。
    さきほど試してみたら
    PHP Notice: Undefined variable: files in /home/vagrant/php_lessons/index.php on line 58
    このように返ってきましたが

    これで設定はできてますでしょうか?

    キャンセル

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

  • ただいまの回答率 88.59%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る