重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

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

仕事の関係、サーバーでCronをいじることになりました。サーバー構築は素人なため手探りの状態でうまくいかず、他社の方に設定していただいたのですが関係上質問ができないためこちらでお伺いします。
ファイル /var/spool/cron/root に関しまして

(1) * * * * * root run-parts /var/www/html/xxx/zzz.php
(2) * * * * * php /var/www/html/xxx/zzz.php

私は(1)で設定していたのですが動かず、お相手は(2)の記述で動作させていました。
(2)のやり方についてWebで調べましたが見つかりません。解説お願いできますでしょうか。また(1)は全く見当外れな記述でしょうか。
よろしくお願いいたします。

<環境>
サーバー:さくらインターネット VPS 4G  http://vps.sakura.ad.jp/
OS:  CentOS
動作対象プログラム:PHP

A 回答 (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を引数にして呼んでいますから動作が期待できます。
    • good
    • 0
この回答へのお礼

ありがとうございます。
すると2番目には言語名が入るということですかね。perlとかrubyとか…
まあ直接書いちゃ行けないので気にしても仕方がない所かもしれませんが。
いずれにしても間違いとわかって良かったです。

お礼日時:2011/11/12 23:59

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-ne …
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2011/11/17 00:25

> すると2番目には言語名が入るということですかね。

perlとかrubyとか

違います。
#1にあるように
分 時 日 月 曜日 コマンドライン
です。
分→ *
時→ *
日→ *
月→ *
曜日→ *
コマンドライン→ php /var/www/html/xxx/zzz.php
で、phpスクリプトの/var/www/html/xxx/zzz.phpを実行するのでphpコマンドを使っている、というものです。
たまたま言語を処理するコマンドと言語名が一緒なだけです。
「言語」が入るのなら、Cで書いてコンパイルしたものは、なんて書けばいいと思います?
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2011/11/17 00:24

crontab ファイルの書式は2種類あって、


(1) /etc/crontab ファイルに書く書式
分 時 日 月 曜日 実行ユーザ名 コマンドライン
(2) crontab -e コマンドで書き込む書式
分 時 日 月 曜日 コマンドライン

と、実行ユーザ名の有無が違います。(1)はシステムファイルに書き込むので、実際にコマンドをどのユーザ権限で実行するのかの指定が必要。(2)はcrontab -e コマンドを実行するユーザの権限で登録したコマンドが実行されます。

/var/spool/cron/root は、crontab コマンドが使用するファイルですが、ここに直接書いてはいけません。crontab コマンドを使って変更します。

詳しくは、man crontab と man 5 crontab を熟読のこと。
    • good
    • 0
この回答へのお礼

ありがとうございます。

やはり根本的に間違ってるようですね。
きちんと勉強します…

お礼日時:2011/11/12 23:54

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