- ベストアンサー
Macでcronを利用する方法
- Macのターミナルを使ってcronの起動テストを行い、設定と予約確認をしましたが、起動しない問題に直面しています。
- 起動を確認するために、/etc/rc.d/init.d/crond statusを実行しましたが、ファイルやディレクトリが存在しないとエラーが表示されてしまいました。
- 現在、MacOSX 10.6.8の開発環境で困っています。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
サーバーで実行するのと、CLIで実行するのとでは、環境が違うので、「ブラウザ上にて実行すると処理通りいく」というのはあてになりません。 特に、cronは、最低限の環境変数しか定義されないので、それが原因でエラーになることがあります。 * * * * /usr/bin/php /Applications/MAMP/htdocs/●●/●●.php 2&>1 にして、エラーも標準出力に出すようにして、返ってくるメールを確認するのはどうでしょうか。 なお、Mountin Lionでは、cronからのメールがうまく届かないようです。 http://blog.sarabande.jp/post/29081891413 さっき実験してて、これでハマりかけました。 > 正直(僕の知識が乏しいので)正しい情報かどうか判別がつきませんが、以下のサイトほかいくつかで確認できます Mac OSXはLinuxではありません。 参考になることは多いですが、かならずしも一致していません。 例えば、コマンドラインから man cron とcronのマニュアルを読むと、Linuxのものとはまったく違います。 マニュアル中に、crondなんてどこにも出てきません。
その他の回答 (2)
- Tacosan
- ベストアンサー率23% (3656/15482)
MacOS は使っていないことを前置きしておきます. 「ブラウザ上にて実行する」というのが「CGI として実行する」という意味だとすると, 「テキストファイルに書き込む」ときにディレクトリの状態が変わっているという可能性もありますねぇ. ログに何か出てませんか? あと, MacOS で「cronの起動を確認するため」に /etc/rc.d/init.d/crond status を実行すればよい, というのはどこかにあるんでしょうか? ちょろっと調べてみると「MacOS なんだし, cron じゃなくてもいいんじゃね?」って書いてあったりもしますが, 「ど~しても cron じゃないといけない」んでしょうか.
補足
ご回答有り難うございます! >「ブラウザ上にて実行する」というのが「CGI として実行する」という意味だとすると, 「テキストファイルに書き込む」ときにディレクトリの状態が変わっているという可能性もありますねぇ. ログに何か出てませんか? PHPにて実装しているのですが、PHPのエラーログを確認してもそれらしいものはありませんでした。。 >あと, MacOS で「cronの起動を確認するため」に >/etc/rc.d/init.d/crond status >を実行すればよい, というのはどこかにあるんでしょうか? 正直(僕の知識が乏しいので)正しい情報かどうか判別がつきませんが、以下のサイトほかいくつかで確認できます。 http://www.express.nec.co.jp/linux/distributions/knowledge/system/crond.html >ちょろっと調べてみると「MacOS なんだし, cron じゃなくてもいいんじゃね?」って書いてあったりもしますが, 「ど~しても cron >じゃないといけない」んでしょうか. 本番サーバー(OSはLinux)にて挙げた際、管理画面上で設定できるのがcronを使った方法なので選択しました。 他にもお手軽に行える方法があるのならぜひそちらを使いたいです! 宜敷くお願い致します!
- kmee
- ベストアンサー率55% (1857/3366)
「起動しない」というのはどんな確認をしたのでしょうか? # 1 * * * * /usr/bin/php /Applications/MAMP/htdocs/●●/●●.php 先頭の#は後で付けたものですか、もともとあるものですか?
補足
ご質問有り難うございます! >「起動しない」というのはどんな確認をしたのでしょうか? クーロン予約した.phpが処理されていないというところで「起動しない」と判断しています。 ちなみに.phpの処理ですが、実行時の時間をテキストファイルに書き込むという内容です。 ブラウザ上にて実行すると処理通りいくので.phpのエラーではないと思っています。 ># 1 * * * * /usr/bin/php /Applications/MAMP/htdocs/●●/●●.php >先頭の#は後で付けたものですか、もともとあるものですか? 紛らしくてすみません; 「#」は質問文章を見やすくするためつけたもので実際は、 1 * * * * /usr/bin/php /Applications/MAMP/htdocs/●●/●●.php です。 宜敷くお願致します!
お礼
ご回答有り難うございます! cron、実行できました! >* * * * /usr/bin/php /Applications/MAMP/htdocs/●●/●●.php 2&>1 >にして、エラーも標準出力に出すようにして、返ってくるメールを確認するのはどうでしょうか。 2 * * * * ~ という命令を、「毎時2分に実行する」を「2分毎に実行する」と勘違いしており実行できていないと思っていましたが、アドバイスとおりメールの履歴を確認するときちんと命令とおり実行されていること(命令自体を勘違いしていることも笑)を確認できました! 本当に有り難うございました!^^