cronで指定した時間にphpを使ってメール送信したいけど出来ないの(´;ω;`)
定時になってもメールが送られてこない。。。サーバーはxreaの有料プランです。
php自体は正常に動作していることはURLを直接叩いて確認している
その場合はちゃんとメールも届くのでメールサーバーのドメイン設定で弾かれているわけではなさそう。
shファイルの記述が間違っているということもない。
サーバーにsshでログインして手動で直接shファイルを動かしたけど
それでちゃんとphpが実行されてメールは届いた。
じゃあ次はcronの起動設定が間違っている可能性があるが、
これは設定画面(レンタル鯖側で用意してくれてるHTML画面)で
ファイル名を入力するだけなので間違いようがない。
shファイルもディレクトリ直下に置いているのでshファイルの置き場所も間違っていない。
で、cronが本当に定時に実行されているかどうかがわからない。
cronの実行が成功したにせよ失敗したにせよ、
レンタル鯖登録メアドに実行結果がメールされるらしいんだが、
そもそもそのメールが来ない。
http://www.review-rank.net/?p=6746
コレに関しては↑のページを見ると同じ症状の人がいる。
俺のサーバーもs337なんだ・・・。
ちなみにcronを設定してからちゃんと時間も十分に置いた上で
動作していないもよう。
有用な情報を求む・・・!!!!
それはどういうコマンドなんだい?
ちなみにSSHでログインして
crontab -l
で確認してみたらちゃんと設定はされている模様。
echo success > a.txt とかそんなもんでいいだろ
あ、つまりそれは
http://www.dotup.org/uploda/www.dotup.org336161.png
この画面での設定でいうところのテキストフィールド部分を
ur_cron.sh > cronlog.txt
とかにして、cronlog.txtが生成されていれば
とりあえず実行はされているということか!!!!
そういうことですかね?!???
例えば
/home/users/1/asfasfdasf/web/safasfasf/asdf.php
を実行したい時
Webから叩いた場合のカレントディレクトリ
/home/users/1/asfasfdasf/web/safasfas/
cronから直接叩いた場合のカレントディレクトリ
/ (あるいは/home/users/1/asfasfdasf/)
cronから直接叩くとカレントディレクトリが異なるから外部ファイルの読み込みに失敗する
あ、そういうことか
でもそれは間違いないはず
phpへのパスは途中までサーバ側のサンプルをコピペしているので・・・
質問の意図、把握しました。
本件一度持ち帰らせていただきます。
しばらくお待ちください。
ワロタ
そうなんだよ
そもそも実行されているのかどうかが分からない
手動で実行させたらちゃんと動作しているんだが、
shファイルの設定とphpのプログラムに問題ないという前提で、
phpから送られるはずのメールが届かないということは
そもそもphpが実行されていないということなんだろうか
実行権限もちゃんと指定通り
.sh 705
.php 705
で指定している。ファイル名のパスも間違っていない。
なぜなら手動でshを実行したらphpが動作するから
phpへのパスは途中までサーバ側のサンプルをコピペしているので・・・
パス間違ってても実行結果は送られて来そうだけど、
いちおうパスはどこから指定して下さい、みたいな解説がないか調べたら?
パスの指定の仕方もテキストで用意してもらっていて、
#!/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が起動する以上パスの間違いはありえない
スポンサーリンク
結局謎のままだったけど
それ、原因追求と同時に別な方法で実装してみては?
メール送信するプロセスを常に起動しておいて、
cronからの起動では、空のファイルを作るだけにして、
常に起動してるメール送信プロセスではその空ファイルが存在したらメールを送信する
みたいな
その場合は、常に起動しているメール送信プロセスが指定時刻にメールを送ればいいだけで、
cronいらないんじゃ・・・そしてcronで空ファイルつくろうにもcronがちゃんと動作してくれないと・・・
xreaは実行時間3分MAXという制限がついているので
その方法はそもそも無理の模様
このphpファイルAはカレントディレクトリがどこだろうと正常に動くから問題ない
curlは並列処理したくなった場合の話で無関係
ちなみにこのphpファイルA自体はどうやって定期的に起動させるんです?
普通にcronで起動させればいいだけ
あ、cronをCMSからじゃなくてSSHログインして手動で実行ってことか・・・!
ちょっとコマンド調べてみる
時間の設定あってる?
サーバの時間がズレてたりしない?
時間の設定もマニュアル通り。
マニュアルによると、設定方法は以下のとおり
○毎時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
のページをみるとs337サーバーは闇が深そうだ・・・
PHPのバージョンについては
phpの実行でエラーも出なくて正常に動作していることで特に問題ないはず・・・!
cronの設定は1時間(公式曰く)くらいで反映されるようだけど、
ブログとか見てると2時間くらい見といた方がいいって書いてあるところもあったし、
ちょっと2時間くらい待ってみて確認してみる!!!
それでそもそもcron動いてなかったら
こっちでどうしようもないので運営にメールするかな・・・
shファイルはちゃんとユーザーのルート(.htpasswdとか置くところ)に置いている
置き場所も間違っていないはず
頭が悪いんじゃない・・・知識がないんだ・・・
なぜなら俺は職業プログラマーじゃなくて
ITですらない業界でデスクワークしてるしがないサラリーマンだからだ
cron -> b.php
の状態から
cron -> a.php(b.phpをURL指定) -> b.php
に変えればOKってこと?
何故お前のような奴が鯖を弄る羽目に……
完全趣味なので問題ないっす
とあるWebサイトを監視して、こっちの意図した変化があれば
すぐに携帯にメールを送るようにしたい。
それだけなんだ・・・
これが仕事だったらとっととIT業者に発注して終わっている
よかった……何も知らない社員が外注コスト削減のために無理難題押し付けられたんじゃなかったんだな……
鯖に入れるならログ見た方が手っ取り早い気がするけど
そのログが本来メールで届くはずなのに届かない・・・
そしてcronのログがどこに吐出されるのか分からない
探してる範囲には見当たらない
ルートに元から置いてあるlogフォルダの中身も空っぽ
まぁ、さっき > cron_log.txt を設定したので
それの吐き出し待ちかな
引用元URL:http://viper.2ch.sc/test/read.cgi/news4vip/1432653402/
関連記事
-
-
Swift(プログラミング言語)の需要はあるのか ニートだけど、この言語でお仕事したい
1: 番組の途中ですがアフィサイトへの\(^o^)/です 2015/05/18(月) 17:16:
-
-
一念発起してプログラミング学びたいんだけど今から学ぶのにおすすめの言語教えてくれ
1: 以下、\(^o^)/でVIPがお送りします 2015/01/26(月) 16:26:57.4
-
-
電子工作をはじめてみた
1: 以下、\(^o^)/でVIPがお送りします 2015/10/24(土) 18:50:39.8
-
-
PHPでLINEのスタンプ検索作ってみた
1: 名無しさん 2014/03/18(火)13:47:27 ID:MKgENHn6I どうかな
-
-
『PHP7』、 12月3日メジャーリリース!!
1: 番組の途中ですがアフィサイトへの\(^o^)/です (オッペケ Sr8d-y8Vw) 20
-
-
仕事以外でプログラミングしている人って、一体何をしているの?
1: 以下、\(^o^)/でVIPがお送りします 2015/10/03(土) 00:27:02.5
-
-
パソコン持ってるならプログラミング、作曲、作画、3DCG、動画作成できて当たりまえだよな
1: 以下、\(^o^)/でVIPがお送りします 2015/05/16(土) 18:25:04.4
-
-
【色々】Java系スクリプト言語【やってるよ】
1: デフォルトの名無しさん 2007/09/28(金) 21:19:00 .net G
-
-
日本エンジニアフォーラムで、プログラマーがよく質問する言語→※1位PHP、2位Java、3位javascript
1: アイアンフィンガーフロムヘル(大阪府)@\(^o^)/ 2015/07/18(土) 11:
-
-
プログラム単語を覚えるアプリみたいなのない?
1: 以下、\(^o^)/でVIPがお送りします 2015/06/28(日) 11:51:37.1