crontab -
各ユーザーのための
crontab
ファイルを管理する (V3)
crontab [ -u user ] file
crontab [ -u user ] { -l | -r | -e }
crontab は、Vixie Cron
パッケージの
cron(8)
デーモンの運用に使われるテーブルをインストール・アンインストール・
表示するためのプログラムである。
ユーザーはそれぞれ自分用の
crontab を保有できる。
これらは /var/spool/cron/crontabs
以下に置かれるが、
直接には編集できないようにしてある。
/etc/cron.allow
ファイルが存在する場合、ユーザーがこのコマンドを使用するには、
そのファイル中に(そのユーザーが)リストアップされている必要がある。
/etc/cron.allow
ファイルは存在せずに
/etc/cron.deny
ファイルが存在する場合、ユーザーがこのコマンドを使用するには、
/etc/cron.deny
ファイル中にリストアップされて
いない
必要がある。
いずれのファイルも存在しない場合、スーパーユーザーのみがこのコマンドを
使えるか、あるいはすべてのユーザーがこのコマンドを使えることになり、
そのいずれであるかはサイトに依存した設定パラメータによって決まる。
標準の Debian
システムでは、ユーザは誰でも
cron
コマンドを使用できるようになっている。
-u
オプションでは、対象となる
crontab
の所有者名を指定する。
このオプションが与えられていない場合、
crontab は "あなたの" crontab
、すなわちコマンドを実行している人の
crontab を 調べる。 なお、
su(8) を使っていると
crontab
を混同しかねないため、
su(8)
内部での実行中は、安全のため常に
-u
オプションを使うべきである。
このコマンドの 1
つ目の書式は、
新しい crontab
を(何らかの名前の付けられた)ファイル、
もしくは標準入力(疑似ファイル名
``-''
が与えられた場合)から
インストールするために使われる。
-l
オプションは、現在の
crontab
を標準出力へ表示させる。
以下の
DEBIAN 固有
に書かれている注記を参照。
-r
オプションは、現在の
crontab を削除する。
-e
オプションは、環境変数
VISUAL もしくは EDITOR
で指定されている
エディターを使って、現在の
crontab
を編集するのに使われる。
編集終了後、変更された
crontab
は自動的にインストールされる。
どちらの環境変数も定義されていない場合は、
デフォルトのエディタ
/usr/bin/editor が使用される。
オリジナルの
crontab -l
の挙動では、 crontab
ファイルがインストールされたときにファイルの頭に挿入される、
"DO NOT EDIT THIS FILE" で始まる 3
行のヘッダが表示される。
問題は、この挙動のために、
crontab -l | crontab -
を繰り返し実行すると同じ結果を返さない、
つまりヘッダのコピーを追加し続けてしまうことである。
これは、crontab の編集に sed
を使用するスクリプトには悩みの種になる。
したがって、
-l
オプションのデフォルトの挙動は、
そのようなヘッダを出力しないように変更されている。
環境変数
CRONTAB_NOHEADER を 'N'
に設定すれば、元々の挙動どおり、
crontab -l
コマンドが追加のヘッダを出力するようになる。
crontab(5),
cron(8)
/etc/cron/allow
/etc/cron/deny
crontab コマンドは、IEEE
Std1003.2-1992 (``POSIX'')
に準拠している。
この新しいコマンドのシンタックスは、
Vixie Cron
の前のバージョンと異なっている
(古典的な SVR3
シンタックスとも異なる)。
正しくないコマンドラインでこのコマンドを実行すると、
多少の情報を含む利用法のメッセージが表示される。
cron では crontab
の各エントリの末尾に改行文字があることが必要になるが、
crontab コマンドも cron
デーモンも、それに関する間違いを検出しない。
それどころか、crontab
は通常どおりロードするように見える。
しかし、改行文字で終わっていないコマンドは絶対に実行されない。
間違いを防ぐためには、
crontab
の末尾に必ず空行を入れるようにするのが一番よい。
Paul Vixie <[email protected]>