• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Cronの設定ファイルについて)

Cronの設定ファイルについて

このQ&Aのポイント
  • 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 の内容について詳しく教えていただけますか?

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

  • ベストアンサー
  • EF_510
  • ベストアンサー率50% (306/604)
回答No.2

/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を引数にして呼んでいますから動作が期待できます。

ikataro
質問者

お礼

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

その他の回答 (3)

  • 774danger
  • ベストアンサー率53% (1010/1877)
回答No.4

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/

ikataro
質問者

お礼

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

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

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

ikataro
質問者

お礼

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

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

crontab ファイルの書式は2種類あって、 (1) /etc/crontab ファイルに書く書式 分 時 日 月 曜日 実行ユーザ名 コマンドライン (2) crontab -e コマンドで書き込む書式 分 時 日 月 曜日 コマンドライン と、実行ユーザ名の有無が違います。(1)はシステムファイルに書き込むので、実際にコマンドをどのユーザ権限で実行するのかの指定が必要。(2)はcrontab -e コマンドを実行するユーザの権限で登録したコマンドが実行されます。 /var/spool/cron/root は、crontab コマンドが使用するファイルですが、ここに直接書いてはいけません。crontab コマンドを使って変更します。 詳しくは、man crontab と man 5 crontab を熟読のこと。

ikataro
質問者

お礼

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

関連するQ&A