• ベストアンサー
  • すぐに回答を!

cronが動かない

cronからphpスクリプトを動かそうと設定したのですが動きません。 エラーメールやエラー表示もされません。 phpスクリプト自体は、cronを使わず手動なら動作しています。 どこか設定に異常個所などがあればご指摘やアドバイスなど頂きたいと思います。 以下に設定内容を記載します。 【crontab】 # crontab -u testuser -e 0-59/5 * * * * /usr/bin/php -q /home/testuser/public_html/mail.php 2>&1 0-59/10 * * * * /usr/bin/php -q /home/testuser/private_html/mail.php 2>&1 【cron確認】 # ls -l /var/spool/cron/ -rw------- 1 root root 251 4月 17 15:25 testuser -rw------- 1 root root 71 4月 16 18:28 root 【mail.php】 #!/usr/bin/php <?php $tim = time(); $today = gmdate("Y/m/d(D)",$tim+9*60*60); $now = gmdate("Y/m/d(D) H:i",$tim+9*60*60); mb_language("Ja") ; mb_internal_encoding("EUC-JP") ; $mailto="test@****.jp"; $mailfrom = "From:" .mb_encode_mimeheader("cronテスト") ."<" . $mailto .">"; $parameters = '-f' . $mailto; $return_path = "$mailto"; $subject="テストメール"; $body ="クーロンテスト\n"; $body .="送信年月日: $today \n"; $body .="送信時間: $now \n"; mb_send_mail( $mailto, $subject, $body, $mailfrom,"-f $return_path" ); ?> 【パーミッション】 /home/testuser/public_html/  705 /home/testuser/private_html/ 705 /home/testuser/public_html/mail.php 705 /home/testuser/private_html/mail.php 705 rootユーザーでのcronは正常に動いています。 ご教授の程、宜しくお願い致します。

共感・応援の気持ちを伝えよう!

  • Linux系OS
  • 回答数1
  • 閲覧数2558
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1
  • notnot
  • ベストアンサー率47% (4738/9987)

cronから起動されない(/var/log/cronに記録が無い)のか、起動はされるが動作が期待通りでないのかどちらでしょう?

共感・感謝の気持ちを伝えよう!

質問者からのお礼

notnot様 できました。 ログエラーからググッてみたら、 どうやらサーバーのセキュリティ設定の問題でした。 cronってSSHにログインできるユーザーしか受付けないんですね。 /etc/security/access.conf の設定を若干変更しました。 当方のサーバーはかなりセキュリティを強化しているので上手く動作しないようでした。 とても良いアドバイスでした!! 有難うございました。

質問者からの補足

notnot様 よろしくお願いします。 早速、ログを確認してみました。 # cat /var/log/cron Apr 17 22:44:01 main crond[15806]: CRON (testuser) ERROR: failed to open PAM security session: 成功です Apr 17 22:44:01 main crond[15806]: CRON (testuser) ERROR: cannot set security context Apr 17 22:45:01 main crond[15808]: 拒否されたパーミッション 以上の羅列が記録として残っておりました。 これは、起動はされているが、パーミッションの設定ミスで 動作が止まってしまったということなのでしょうか? どうか、どうか、 何卒、アドバイスを宜しくお願い致します。

関連するQ&A

  • PHPの定期実行[ Linux&cron ]

    Redhat9.0 PHP4.3.3を利用しています。 cronとコマンドライン版のPHPを利用して「1分毎に自分にメールを送る(実験用)」プログラムを実行させたいのですが、コマンドラインでは実行可能なのに、cronに登録してもメールが送られてきません。cronにはプログラムを実行したログが残っています。 完全に行き詰ってしまった。よろしくお願いします。 [ crontab ] * * * * * php /home/hoge/mail.php [ mail.php ] mb_language("Ja"); mb_internal_encoding("SJIS") ; $subject="test"; $content = "test"; $mailfrom="From:hoge@hoge.jp"; $mailto="***@hoge.com"; mb_send_mail($mailto,$subject,$content,$mailfrom);

    • ベストアンサー
    • PHP
  • fedora11でのcron設定

    fedora11,apache,php5の環境でcronを使いたいのですが、動きません。。 状況が、 fedora11 php5 apache を使用していて、cronを使ってphpの定期実行を行いたいのですが、どうしてもうまくいきません。 かなりググってはみたのですが、liuxについては初心者なので、どうにもわかりません。 設定内容が、 /etc/crontabが、 SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ * /1 * * * * apache /usr/bin/php /var/www/html/cron.php で、/var/log/cron でログを確認したところ Jul 28 19:00:01 host CROND[8417]: (apache) CMD (/usr/bin/php /var/www/html/cron.php) となっていてこれが一分ごとに出てきます。 cron.phpにはファイル追記の処理を書いてあります。 エラーではないようなのですが、ファイル操作が行われていないようなので動いていないようなのです。 ローカルホストでphpを実行したらちゃんと動くのでphp内のミスではないようです。 パーミッション関係だったらログにエラーが出そうなものですし、、、。困っています。。 どなたかお知恵を貸していただけませんでしょうか、よろしくお願いします。

  • cronでPHP実行

    お世話になります。 OSはクライアントの為、恐縮ながら何を使用しているか不明となっております。 PHPバージョンは5.1.6です。 cronを使用して、毎日特定の時間に、メールを配信するPHPスクリプトを実行しようと試みているのですが、エラーメールが返ってきてしまいます。 因みに、URLを直接指定して実行した場合は正常にメールが配信されます。 設定方法は、crontab -e で 0 12 * * * /usr/lib/php -q /home/hoge/public_html/mail.php と記述しております。 返ってくるエラーメールの内容は、以下の通りです。 Content-Type: text/plain; charset=UTF-8 Auto-Submitted: auto-generated X-Cron-Env: <SHELL=/bin/sh> X-Cron-Env: <HOME=/home/hoge> X-Cron-Env: <PATH=/usr/bin:/bin> X-Cron-Env: <LOGNAME=hoge> X-Cron-Env: <USER=hoge> Message-Id: <xxxxxx@xxxxxxxxxx> Date: Sun, 28 Sep 2008 12:00:01 +0900 (JST) /bin/sh: /home/hoge/public_html/mail.php: Permission denied 以上、対策方法についてご存知の方がおられましたら、ご教授よろしくお願い致します。

  • CRONを使ってshファイルの書き方がわからない

    下記のやり方はうまくいきました #!/bin/sh /usr/local/bin/php /home/cron/index.php 以下の場合(パラメータが入った場合)がうまくいきません #!/bin/sh /usr/local/bin/php /home/cron/index.php?id=35 宜しくお願いいたします

  • cronの設定

    Linux, cron, PHP CLI版を使って、定期的にPHPスクリプトを実行させようとしておりますが、どうも上手くいきません。 コマンドラインで試すと上手くいくのですが、cronを使用して動かすと、実行結果が Could not open input file: /home/---/---/--/test.php と返ってきて、実行されておりません。 以下、crontabの内容です。 MAILTO="-------.com" */1 * * * * /usr/local/bin/php /home/---/---/---/test.php お忙しい中すみませんが、どなたかアドバイスをいただけないでしょうか?

    • ベストアンサー
    • PHP
  • xreaでのCronの設定について

    xreaでのCronの設定について どうしても解決出来ないので質問させて頂きました。 やりたい事は毎時一回 /public_html/cache_cron.phpを稼働させたいです。 現在の設定はxreaのCRONジョブの編集画面にて 分 時 日 月 曜日 0 * * * * /virtual/*****/public_html/cron1.sh 分 時 日 月 曜日 0 * * * * /virtual/*****/cron1.sh 始めは上の設定だけだったのですが動かないので下の設定も追加しました。 cron1.shは /public_html/cron1.sh /cron1.sh の両方にアップしています。 これも始めは/public_html/cron1.shだけにアップしてたのですが動かなかったので追加でアップしました。 アップ方法はffftpでのアスキーモードでcron1.shの改行もLFです。 パーミッションは705です。 cron1.shの中身は #!/bin/sh #PHP /usr/local/bin/php /virtual/*****/cache_cron.php /usr/local/bin/php /virtual/*****/public_html/cache_cron.php exit です。 cache_cron.phpにブラウザで直接アクセスすると希望通りの処理は行われます。 このファイルのパーミッションも705です。 一応確認でcache_cron.phpの最後に自分の携帯にメールを送信するプログラムも追加しているのですが、 直接アクセスしない限りメールは来ません。 他に必要な情報があれば書くので宜しくお願い致します。

    • 締切済み
    • PHP
  • cronの実行結果通知メールの配信をさせないようにするには?

    RedHat9を使用してます。 # cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ : # crontab -l | more # DO NOT EDIT THIS FILE - edit the master and reinstall. # (/tmp/crontab.12227 installed on Thu Feb 3 02:58:29 2005) # (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $) # crontab -e SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ : としていて、 記述が増えるに従ってcron実行済みの通知メール数が多くなってきましたので 配信させないように双方とも MAILTO="" してみたのですが相変わらず届いてしまいます。 相変わらずローカルのrootが送信しているようです。 どうすれば配信させないようにできるのでしょうか?

  • cronでとても困っています どなたかご教授いただけないでしょうか

    cronの設定でpersonユーザーで動くように設定したいのですが、動いてくれません なにか設定がおかしいのでしょうか ↓crontabの内容です # DO NOT EDIT THIS FILE - edit the master and reinstall. # (/tmp/crontab.4208 installed on Thu Jan 25 12:14:20 2007) # (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $) SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ 15 12 * * * person /home/test/bin/test.sh rootに送られてくるエラーメッセージです /bin/bash: line 1: person : command not found ご教授いただけたら幸いです 何卒宜しくお願いいたします

  • phpからサーバー上のcronにジョブ登録したい

    プログラミング初心者です。 【ウェブブラウザでphpファイルを開くと、レンタルサーバーのcronにジョブ登録される】ようにしたいのですが、上手く行きません。 下記記述に不備はありますでしょうか? <?php $cron = popen("/usr/bin/crontab -", "w"); $line = "51 22 13 11 * /usr/bin/php /home/userid/public_html/絶対パスでファイルの場所/ファイル.php"; fwrite($cron, $line); pclose($cron); ?> ※テストとして 11/13 22:51 に実行するような記述をしていました。 諸々検索もしたのですが、レンタルサーバー上にphpでジョブ登録するような事例がなく… お力添えください。宜しくお願い致します。

    • 締切済み
    • PHP
  • cronでpg_dumpの実行

    こんにちわ。 Linuxでcronを設定しPHPからexecで「pg_dump」を実行しようとしています。 エラーになり実行ができません。 設定は /var/spool/cron ディレクトリに 『crontab -e -u postgres』でコマンドを実行し SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO='' HOME=/ 08 19 * * * postgres /usr/bin/php /home/var/b_dump.php とcrontabに記載しています。 コマンドの実行はrootユーザで 権限は777 にしています。 メールを届くようにしているのですが、届くメールは 『postgres does not know where to find the server configuration file. You must specify the --config-file or -D invocation option or set the PGDATA environment variable.』 と届きます。 googleで検索したのですが、解決方法がわかりません…。 読みにくい文章で申し訳ないのですが、解決方法のご教授を お願いします。