電子書籍の厳選無料作品が豊富!

初めまして!
早速ですが、ご質問させて頂きます!

macのターミナルを利用してcronの起動テストを行っています。

参考サイトにて調べ下記のように「設定」と「予約確認」を行いました。
【設定】
# crontab -e
【予約確認】
# crontab -l
# 1 * * * * /usr/bin/php /Applications/MAMP/htdocs/●●/●●.php
(*●●は任意の英字です。)

ですが、全く起動しません。

cronの起動を確認するため、
# /etc/rc.d/init.d/crond status
を実行したのですが、
# /etc/rc.d/init.d/crond: No such file or directory
を表示され起動確認も行えません><

ここから一向に進まずほとほと困っています;

開発環境は、
MacOSX 10.6.8
です。

ご教授の程宜しくお願いします!

A 回答 (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なんてどこにも出てきません。
    • good
    • 0
この回答へのお礼

ご回答有り難うございます!

cron、実行できました!

>* * * * /usr/bin/php /Applications/MAMP/htdocs/●●/●●.php 2&>1
>にして、エラーも標準出力に出すようにして、返ってくるメールを確認するのはどうでしょうか。

2 * * * * ~ という命令を、「毎時2分に実行する」を「2分毎に実行する」と勘違いしており実行できていないと思っていましたが、アドバイスとおりメールの履歴を確認するときちんと命令とおり実行されていること(命令自体を勘違いしていることも笑)を確認できました!

本当に有り難うございました!^^

お礼日時:2013/06/28 20:14

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 …


>ちょろっと調べてみると「MacOS なんだし, cron じゃなくてもいいんじゃね?」って書いてあったりもしますが, 「ど~しても cron >じゃないといけない」んでしょうか.

本番サーバー(OSはLinux)にて挙げた際、管理画面上で設定できるのがcronを使った方法なので選択しました。
他にもお手軽に行える方法があるのならぜひそちらを使いたいです!


宜敷くお願い致します!

補足日時:2013/06/27 19:00
    • good
    • 0

「起動しない」というのはどんな確認をしたのでしょうか?



# 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
です。



宜敷くお願致します!

補足日時:2013/06/27 13:44
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!