- ベストアンサー
Cronの設定ファイルについて
- Cronの設定ファイルについての質問です。具体的には、ファイル /var/spool/cron/root の内容について説明してほしいと思っています。
- 私は * * * * * root run-parts /var/www/html/xxx/zzz.php という設定で動かそうとしましたが、うまくいきませんでした。他の人は * * * * * php /var/www/html/xxx/zzz.php という設定で動かしていました。後者の設定方法について教えていただきたいです。
- さくらインターネットのVPS 4Gを使用して、CentOS上でPHPを実行する際のCronの設定ファイルについて質問があります。具体的には、ファイル /var/spool/cron/root の内容について詳しく教えていただけますか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
/var/spool/cron/root の記述ですよね? >* * * * * root run-parts /var/www/html/xxx/zzz.php これだと/etc/crontabの記述「風」ですが動きません。 ユーザー用のcron設定なので最初にユーザー名(root)を書いてしまうと、root というコマンドをrun-parts /var/www/html/xxx/zzz.php という引数で呼び出す記述になってしまいます。 同じ理屈で(2)はphpを/var/www/html/xxx/zzz.phpを引数にして呼んでいますから動作が期待できます。
その他の回答 (3)
- 774danger
- ベストアンサー率53% (1010/1877)
phpというユーザの権限で/var/www/html/xxx/zzz.phpを動かしたいなら、(2)のように記載します run-partsはそのディレクトリ配下にあるスクリプトを全て実行するコマンド もし、/var/www/html/xxx/zzz.phpというディレクトリがあって、そこにスクリプトがいくつか置かれているのであれば(1)の表記でも正しいですが、zzz.phpがファイルなら書式がおかしいことになります run-partsコマンドが何か理解できていないのでは? http://www.linuxquestions.org/questions/linux-newbie-8/what-does-the-run-parts-mean-in-crontab-382120/
お礼
ありがとうございました。
- kmee
- ベストアンサー率55% (1857/3366)
> すると2番目には言語名が入るということですかね。perlとかrubyとか 違います。 #1にあるように 分 時 日 月 曜日 コマンドライン です。 分→ * 時→ * 日→ * 月→ * 曜日→ * コマンドライン→ php /var/www/html/xxx/zzz.php で、phpスクリプトの/var/www/html/xxx/zzz.phpを実行するのでphpコマンドを使っている、というものです。 たまたま言語を処理するコマンドと言語名が一緒なだけです。 「言語」が入るのなら、Cで書いてコンパイルしたものは、なんて書けばいいと思います?
お礼
ありがとうございました。
- notnot
- ベストアンサー率47% (4900/10358)
crontab ファイルの書式は2種類あって、 (1) /etc/crontab ファイルに書く書式 分 時 日 月 曜日 実行ユーザ名 コマンドライン (2) crontab -e コマンドで書き込む書式 分 時 日 月 曜日 コマンドライン と、実行ユーザ名の有無が違います。(1)はシステムファイルに書き込むので、実際にコマンドをどのユーザ権限で実行するのかの指定が必要。(2)はcrontab -e コマンドを実行するユーザの権限で登録したコマンドが実行されます。 /var/spool/cron/root は、crontab コマンドが使用するファイルですが、ここに直接書いてはいけません。crontab コマンドを使って変更します。 詳しくは、man crontab と man 5 crontab を熟読のこと。
お礼
ありがとうございます。 やはり根本的に間違ってるようですね。 きちんと勉強します…
お礼
ありがとうございます。 すると2番目には言語名が入るということですかね。perlとかrubyとか… まあ直接書いちゃ行けないので気にしても仕方がない所かもしれませんが。 いずれにしても間違いとわかって良かったです。