cronで指定した時間にphpを使ってメール送信したいけど出来ないの(´;ω;`)

公開日: : 最終更新日:2015/05/30 PHP, プログラミング, 初心者 , , , ,

1: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:16:42.787 ID:E5pcPS7Q0.net
phpでメールを送るプログラムを書いて、それをcronで定時に実行するように設定してみたんだが、
定時になってもメールが送られてこない。。。サーバーはxreaの有料プランです。

php自体は正常に動作していることはURLを直接叩いて確認している
その場合はちゃんとメールも届くのでメールサーバーのドメイン設定で弾かれているわけではなさそう。

shファイルの記述が間違っているということもない。
サーバーにsshでログインして手動で直接shファイルを動かしたけど
それでちゃんとphpが実行されてメールは届いた。

じゃあ次はcronの起動設定が間違っている可能性があるが、
これは設定画面(レンタル鯖側で用意してくれてるHTML画面)で
ファイル名を入力するだけなので間違いようがない。
shファイルもディレクトリ直下に置いているのでshファイルの置き場所も間違っていない。

で、cronが本当に定時に実行されているかどうかがわからない。
cronの実行が成功したにせよ失敗したにせよ、
レンタル鯖登録メアドに実行結果がメールされるらしいんだが、
そもそもそのメールが来ない。
http://www.review-rank.net/?p=6746
コレに関しては↑のページを見ると同じ症状の人がいる。
俺のサーバーもs337なんだ・・・。

ちなみにcronを設定してからちゃんと時間も十分に置いた上で
動作していないもよう。

有用な情報を求む・・・!!!!

2: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:18:27.088 ID:6Yw5Hr/d0.net
cronにcronがちゃんと動いてるかテストするコマンドを実行させてみりゃわかるだろ

 

4: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:19:45.956 ID:E5pcPS7Q0.net
>>2
それはどういうコマンドなんだい?

ちなみにSSHでログインして
crontab -l
で確認してみたらちゃんと設定はされている模様。

 

11: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:24:50.807 ID:6Yw5Hr/d0.net
>>4
echo success > a.txt とかそんなもんでいいだろ

 

15: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:30:11.562 ID:E5pcPS7Q0.net
>>11
あ、つまりそれは
http://www.dotup.org/uploda/www.dotup.org336161.png
この画面での設定でいうところのテキストフィールド部分を
ur_cron.sh > cronlog.txt
とかにして、cronlog.txtが生成されていれば
とりあえず実行はされているということか!!!!
そういうことですかね?!???

 

20: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:36:05.746 ID:3FEthlCD0.net
>>15
例えば
/home/users/1/asfasfdasf/web/safasfasf/asdf.php
を実行したい時

Webから叩いた場合のカレントディレクトリ
/home/users/1/asfasfdasf/web/safasfas/

cronから直接叩いた場合のカレントディレクトリ
/ (あるいは/home/users/1/asfasfdasf/)

cronから直接叩くとカレントディレクトリが異なるから外部ファイルの読み込みに失敗する

 

24: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:44:27.996 ID:E5pcPS7Q0.net
>>20
あ、そういうことか
でもそれは間違いないはず

 

24: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:44:27.996 ID:E5pcPS7Q0.net
なぜならshへのパス自体は途中までサーバー側が用意してくれてるし>>15
phpへのパスは途中までサーバ側のサンプルをコピペしているので・・・

 

3: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:19:27.801 ID:mPowM+ya0.net
なるほどなるほど

質問の意図、把握しました。
本件一度持ち帰らせていただきます。
しばらくお待ちください。

 

6: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:20:49.831 ID:aF93y68i0.net
>>3
ワロタ

 

5: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:19:53.529 ID:+qrLFMfY0.net
実行結果がメールで届いてないってのが最大の問題か

 

8: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:23:17.718 ID:E5pcPS7Q0.net
>>5
そうなんだよ
そもそも実行されているのかどうかが分からない

手動で実行させたらちゃんと動作しているんだが、
shファイルの設定とphpのプログラムに問題ないという前提で、
phpから送られるはずのメールが届かないということは
そもそもphpが実行されていないということなんだろうか

 

7: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:21:00.076 ID:UEaIH6zp0.net
実行権限とかファイル名はフルパスなのかとか

 

10: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:24:41.741 ID:E5pcPS7Q0.net
>>7
実行権限もちゃんと指定通り
.sh 705
.php 705
で指定している。ファイル名のパスも間違っていない。
なぜなら手動でshを実行したらphpが動作するから

 

24: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:44:27.996 ID:E5pcPS7Q0.net
なぜならshへのパス自体は途中までサーバー側が用意してくれてるし>>15
phpへのパスは途中までサーバ側のサンプルをコピペしているので・・・

 

12: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:27:39.897 ID:+qrLFMfY0.net
実はそういうの全然知らない。
パス間違ってても実行結果は送られて来そうだけど、
いちおうパスはどこから指定して下さい、みたいな解説がないか調べたら?

 

19: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:35:09.546 ID:E5pcPS7Q0.net
>>12
パスの指定の仕方もテキストで用意してもらっていて、

#!/bin/sh

#PERL
/usr/local/bin/perl /virtual/(username)/cron_exe.pl
#SHELL
/bin/sh /virtual/(username)/cron_exe.sh
#PHP
/usr/local/bin/php /virtual/(username)/cron_exe.php
#RUBY
/usr/local/bin/ruby /virtual/(username)/cron_exe.rb
#C/C++
/virtual/(username)/cron_exe

exit

このテキストをコピーして使っているので間違いないはず。
(username)の部分には自分のユーザー名が予め入っているので・・・
というかsh手動実行でphpが起動する以上パスの間違いはありえない

スポンサーリンク

13: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:28:47.519 ID:wFfbdLxu0.net
そういや俺も同じようなことあったな…
結局謎のままだったけど

それ、原因追求と同時に別な方法で実装してみては?

メール送信するプロセスを常に起動しておいて、
cronからの起動では、空のファイルを作るだけにして、
常に起動してるメール送信プロセスではその空ファイルが存在したらメールを送信する

みたいな

 

21: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:39:06.778 ID:E5pcPS7Q0.net
>>13
その場合は、常に起動しているメール送信プロセスが指定時刻にメールを送ればいいだけで、
cronいらないんじゃ・・・そしてcronで空ファイルつくろうにもcronがちゃんと動作してくれないと・・・

xreaは実行時間3分MAXという制限がついているので
その方法はそもそも無理の模様

 

23: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:43:57.113 ID:3FEthlCD0.net
>>21
このphpファイルAはカレントディレクトリがどこだろうと正常に動くから問題ない
curlは並列処理したくなった場合の話で無関係

 

30: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:53:39.480 ID:E5pcPS7Q0.net
>>23
ちなみにこのphpファイルA自体はどうやって定期的に起動させるんです?

 

31: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:55:33.522 ID:3FEthlCD0.net
>>30
普通にcronで起動させればいいだけ

 

33: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:58:18.147 ID:E5pcPS7Q0.net
>>31
あ、cronをCMSからじゃなくてSSHログインして手動で実行ってことか・・・!
ちょっとコマンド調べてみる

 

18: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:32:24.101 ID:ukxJbn8Ba.net
すんげぇ初歩的なこと聞くけどさ

時間の設定あってる?
サーバの時間がズレてたりしない?

 

22: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:41:12.039 ID:E5pcPS7Q0.net
>>18
時間の設定もマニュアル通り。
マニュアルによると、設定方法は以下のとおり

○毎時0分に/virtual/(username)/cron1.shを実行する
0 * * * * cron1.sh

○毎日午前5時0分に/virtual/(username)/cron2.shを実行する
0 5 * * * cron2.sh

○毎週日曜日の午後6時30分に/virtual/(username)/cron3.shを実行する
30 18 * * 0 cron3.sh

○毎月1日の午後9時45分に/virtual/(username)/cron4.shを実行する
45 21 1 * * cron4.sh

○1月1日の午前0時0分に/virtual/(username)/cron5.shを実行する
0 0 1 1 * cron5.sh

○毎日2時間毎に/virtual/(username)/cron6.shを実行する
0 */2 * * * cron6.sh

○5,10,15,20,25,30日の午前1時0分に/virtual/(username)/cron7.shを実行する
0 1 */5 * * cron7.sh

 

25: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:45:11.617 ID:E5pcPS7Q0.net
http://www.review-rank.net/?p=6746
のページをみるとs337サーバーは闇が深そうだ・・・

 

26: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:46:11.011 ID:3FEthlCD0.net
あとWeb鯖とcronでPHPのバージョンが異なる鯖もある

 

30: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:53:39.480 ID:E5pcPS7Q0.net
>>26
PHPのバージョンについては
phpの実行でエラーも出なくて正常に動作していることで特に問題ないはず・・・!

 

27: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:49:20.115 ID:E5pcPS7Q0.net
いったんは > cron_log.txt とかでログファイルが書き出されるかどうかをチェックだね。
cronの設定は1時間(公式曰く)くらいで反映されるようだけど、
ブログとか見てると2時間くらい見といた方がいいって書いてあるところもあったし、
ちょっと2時間くらい待ってみて確認してみる!!!

それでそもそもcron動いてなかったら
こっちでどうしようもないので運営にメールするかな・・・

shファイルはちゃんとユーザーのルート(.htpasswdとか置くところ)に置いている
置き場所も間違っていないはず

 

28: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:49:26.527 ID:3FEthlCD0.net
そこまで頭悪いなら何も考えずreadfile経由で動かしとけ

 

32: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 00:55:44.786 ID:E5pcPS7Q0.net
>>28
頭が悪いんじゃない・・・知識がないんだ・・・
なぜなら俺は職業プログラマーじゃなくて
ITですらない業界でデスクワークしてるしがないサラリーマンだからだ

cron -> b.php

の状態から

cron -> a.php(b.phpをURL指定) -> b.php

に変えればOKってこと?

 

35: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 01:00:43.747 ID:6Yw5Hr/d0.net
>>32
何故お前のような奴が鯖を弄る羽目に……

 

37: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 01:06:19.176 ID:E5pcPS7Q0.net
>>35
完全趣味なので問題ないっす
とあるWebサイトを監視して、こっちの意図した変化があれば
すぐに携帯にメールを送るようにしたい。
それだけなんだ・・・

これが仕事だったらとっととIT業者に発注して終わっている

 

39: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 01:28:15.808 ID:6Yw5Hr/d0.net
>>37
よかった……何も知らない社員が外注コスト削減のために無理難題押し付けられたんじゃなかったんだな……

 

36: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 01:04:15.373 ID:SpXHeXvl0.net
cronの実行ユーザが違ってたりとかな
鯖に入れるならログ見た方が手っ取り早い気がするけど

 

38: 以下、\(^o^)/でVIPがお送りします 2015/05/27(水) 01:09:43.283 ID:E5pcPS7Q0.net
>>36
そのログが本来メールで届くはずなのに届かない・・・
そしてcronのログがどこに吐出されるのか分からない
探してる範囲には見当たらない
ルートに元から置いてあるlogフォルダの中身も空っぽ
まぁ、さっき > cron_log.txt を設定したので
それの吐き出し待ちかな

引用元URL:http://viper.2ch.sc/test/read.cgi/news4vip/1432653402/

関連記事

スクリーンショット 2014-05-10 15.42.50

JavaScript難しすぎww

1: Name_Not_Found 2005/11/19(土) 20:43:56 ID:wG7Gl

記事を読む

https---www.pakutaso.com-assets_c-2015-06-GREEN_O20140125-thumb-1000xauto-16629

お世辞抜きでRuby・Python・PHPのなかではRubyが一番よく出来てね?

1: zaq771925b4.zaq.ne.jp@\(^o^)/ 2015/03/15(日) 22

記事を読む

uart0_sirial_shikumi

プログラミングとかプロトコルに詳しい人!!

1: 以下、\(^o^)/でVIPがお送りします 2015/08/08(土) 15:06:47.9

記事を読む

wpid-news4vip-1395399165-28.png

お前らプログラミングどのくらいやってる?

1: 以下、\(^o^)/でVIPがお送りします 2014/05/23(金) 20:12:47.6

記事を読む

wDluJZy

電子工作やプログラミングの質問に答えていくスレ

1: 名無しさん@おーぷん 2015/10/31(土)01:23:36 ID:dei こ

記事を読む

fig3

排便メソッドを実装した人間クラスから美少女クラスが作れないとかオブジェクト指向って使えねー

1: 番組の途中ですがアフィサイトへの\(^o^)/です (エーイモ SEbe-bGbo) 201

記事を読む

https---www.pakutaso.com-assets_c-2013-06-PAK12_10many500-thumb-1000xauto-3089

何でニートはプログラミングを覚えたがるの?

1: 以下、\(^o^)/でVIPがお送りします 2014/12/01(月) 14:28:06.7

記事を読む

https---www.pakutaso.com-assets_c-2014-03-PAK93_sumikkodehawomigaku20140322500-thumb-autox1000-4366

プログラミングでgotoって何で使っちゃいけないの?

1: 以下、\(^o^)/でVIPがお送りします 2015/05/01(金) 09:35:44.2

記事を読む

スクリーンショット 2014-04-18 11.38.01

アプリ作ってみたい人いる?【初心者向け】

1: 名無しさん 2014/03/08(土)22:56:14 ID:zRPdfMZaf 需要あれ

記事を読む

https---www.pakutaso.com-assets_c-2015-05-N811_notepcwosawarubiz-thumb-1000xauto-14749

趣味でプログラミングやるならVBAとC言語どっちやるべき?

1: 以下、\(^o^)/でVIPがお送りします 2015/05/25(月) 22:16:09.0

記事を読む

Huawei-Mate-8-benchmark-post-launch_1
Androidのベンチマーク、10万点を突破 インフレが止まらない

1: 番組の途中ですがアフィサイトへの\(^o^)/です (ニククエ

hGJvbfh
せっかくの休みだ。原付で>>5に行く。

1: 名無しさん@おーぷん 2015/11/29(日)06:13:2

9xHNnte
XperiaZ5からdocomoのロゴだけ消せるシートが発売開始

1: 番組の途中ですがアフィサイトへの\(^o^)/です (アウアウ

bsLISA78_MBAsawaru20141018102912
子供にプログラミング教えることになりそうなんだが、どうやって教えたら良いんだ?

1: 以下、\(^o^)/でVIPがお送りします 2015/11/2

top
国内で最大容量の8THDDが2万円台に値下がり

1: 海江田三郎 ★ 2015/11/29(日) 14:43:35.

→もっと見る

PAGE TOP ↑