名前 | 形式 | 機能説明 | オプション | 使用例 | 環境 | 終了ステータス | ファイル | 属性 | 関連項目 | 注意事項
crontab ユーティリティは、crontab ファイルをコピー、作成、表示、削除することにより、cron (cron(1M) を参照) を使ってユーザーのアクセスを管理します。 オプションなしで crontab を実行すると、 指定したファイル (ファイルを指定しない場合は標準入力) を、 全ユーザーの crontab が登録されているディレクトリにコピーします。
crontab にファイル名 (filename) を指定して実行すると、コマンドを実行したユーザーの crontab エントリが上書きされます。
次の場合、ユーザーは crontab にアクセスできます。
/etc/cron.d/cron.allow に自分の名前が登録されている場合
/etc/cron.d/cron.allow が存在せず、 /etc/cron.d/cron.deny に自分の名前が登録されていない場合
次の場合、ユーザーは crontab にアクセスできません。
/etc/cron.d/cron.allow が存在し、ファイル内に自分の名前が登録されていない場合
/etc/cron.d/cron.allow が存在せず、 /etc/cron.d/cron.deny に自分の名前が登録されている場合
/etc/cron.d/cron.allow も /etc/cron.d/cron.deny も存在しない場合
この場合、ジョブを送ることができるのは、solaris.jobs.user の承認を受けているユーザーだけです。
BSM 監査が有効な場合、ユーザーのシェルは監査されず、ユーザーは crontab の所有者になりません。これは、ユーザーが SSH のいずれかのバージョンなど、監査パラメータを設定しないプログラムを介してログインする場合に起こります。
なお allow または deny の規則が root に適用されるのは、 allow または deny ファイルが存在している場合だけです。
allow と deny の両ファイルは、いずれも 1 行に 1 ユーザー名が記述される形式になっています。
crontab ファイル内の各行は、6 つのフィールドで構成されています。各フィールドの間は、 空白文字またはタブで区切られています。 最初の 5 つのフィールドは、次の内容を指定する整数パターンです。
分 (0–59) 時 (0–23) 日 (1–31) 月 (1–12) 曜日 (0–6、0 は日曜日) |
整数値の代わりに、アスタリスク (有効な値全部を表す) や、コンマで区切った形式の要素リストを指定することもできます。要素は、数値 1 個で指定しますが、ある数値からある数値までの範囲を指定する場合は、数値 2 個をマイナス記号 (–) で区切って指定します。日付は、2 つのフィールド (日および曜日) で指定できます。どちらのフィールドも、要素のリストとして指定された場合に付加されます。詳しくは「使用例」を参照してください。
crontab ファイル内の行の 6 番目のフィールドは、 指定した時間にシェルによって実行されるコマンド文字列です。このフィールド内の % 文字 (\ によってエスケープされているものは除く) は、復帰改行 (NEWLINE) 文字に変換されます。
シェルによって実行されるのは、このコマンドフィールドの第 1 行 (` % ' または行の終わりまで) のみです。 その他の行は、標準入力として実行されます。空行、または ` # ' で始まる行はコメントとみなされ、無視されます。
シェルは、sh の arg0 によって、 ユーザーの $HOME ディレクトリから呼び出されます。自分の .profile を実行したいユーザーは、 crontab ファイルの中で明示的に指定する必要があります。cron は、ホーム、LOGNAME、SHELL (= /bin/sh )、TZ、パスを定義し、すべてのシェルのデフォルト環境を指定します。ユーザーの cron ジョブのデフォルトパスは /usr/bin で、 root の cron ジョブ の デフォルト パスは /usr/sbin:/usr/bin です。 デフォルトパスは /etc/default/cron 中に設定できます (cron(1M) を参照)。
コマンドの標準出力や標準エラー出力をリダイレクトするように指定していないと、生成されたすべての出力またはエラーが、ユーザーにメールで通知されることになります。
次のオプションを使用できます。
現在のユーザーの crontab ファイルをコピーし、その内容を編集します。 このファイルが存在しない場合は、空の crontab ファイルを作成して編集します。 編集が終了すると、このファイルがユーザーの crontab ファイルとしてインストールされます。 username が指定された場合、 現在のユーザーの crontab ファイルではなく、指定のユーザーの crontab ファイルを編集します。 このようにユーザー名を指定できるのは、solaris.jobs.user の承認を受けているユーザーだけです。 -e オプションを指定してファイルを編集するときに起動するエディタは、環境変数 EDITOR によって決まります。 デフォルトエディタは、 ed(1) です。crontab のジョブを登録するときは、必ず crontab を使用してください。crontab ファイルを直接編集してジョブを追加してはなりません。cron はこの方法による変更を認識しません。
crontab ファイル内のすべての行を削除すると、古い crontab ファイルが復元されます。すべての行を削除するには、-r オプションを使用して crontab ファイルを削除するようにします。
crontab を起動したユーザーの crontab ファイルの内容を表示します。 -r または -l オプションの後にユーザー名 (username) を指定して、指定のユーザーの crontab ファイルを削除または表示できるのは、solaris.jobs.user の承認を受けているユーザーだけです。
crontab ディレクトリからユーザーの crontab を削除します。
平日 (月−金) の午前 3 時 15 分に core ファイルを削除する例です。
15 3 * * 1-5 find $HOME -name core 2>/dev/null | xargs rm -f |
誕生日のお祝いメールを送ります。
0 12 14 2 * mailx john%Happy Birthday!%Time for lunch. |
日付と曜日を同時に指定します。
0 0 1,15 * 1 |
この例では、毎月 1 日と 15 日、さらに毎週月曜日にコマンドが実行されます。曜日だけ、もしくは日付だけを指定する場合には、もう一方のフィールドに * を指定します。次の例を参照してください。
0 0 * * 1 |
毎週月曜日にコマンドが実行されます。
crontab の実行に影響を与える環境変数 LC_CTYPE、LC_MESSAGES、 NLSPATH の詳細については、 environ(5) を参照してください。
-e オプションを指定したときに呼び出すエディタを指定します。 デフォルトのエディタは ed(1) です。 EDITOR 環境変数と VISUAL 環境変数の両方が設定された場合、 優先されるのは VISUAL 環境変数の値です。
主 cron ディレクトリ
許可されているユーザーのリスト
cron のデフォルト設定を含む
許可されていないユーザーのリスト
アカウンティング情報
crontab のスプール空間
次の属性については attributes(5) のマニュアルページを参照してください。
属性タイプ | 属性値 |
使用条件 | SUNWcsu |
誤って引数なしで crontab コマンドを実行してしまった場合、CTRL–D を使って処理を中止しないでください。 CTRL–D を使用すると、 crontab ファイルからすべてのエントリが 削除されてしまいます。 処理の中止には、CTRL–C を使用してください。
承認されたユーザーが他のユーザーの crontab ファイルを編集する場合は、これによってどのような影響が生じるかを予測できません。このような事態を防ぐため、su(1M) コマンドを実行してスーパーユーザーになり、 crontab ファイルのユーザーとしてログインしてから編集作業に取りかかってください。
cron を更新するときには、まず、既存の crontab を調べて、更新時近くにイベントがスケジュールされているかどうかをチェックします。イベントが予定されていた時刻より後に更新プロセスが完了すると、当該エントリが失われる可能性があります。この現象は次のように発生します。ユーザーの crontab ファイルの内部ビューを更新するように crontab から通知されると、cron はまず、既存の crontab ファイルの内部ビューとスケジュールされている内部イベントを削除します。次に、新しい crontab ファイルを読み込んで、crontab の内部ビューと内部イベントを構築し直します。この最後の段階には (特に、crontab ファイルが大きいときには) 時間がかかります。既存の crontab エントリが更新時に極めて近くに予定されていると、予定された時刻の後に最後の段階が完了することがあり得ます。安全を期すために、新しいジョブは少なくとも現在の日付と時刻の 60 秒後に起動するようにしてください。
名前 | 形式 | 機能説明 | オプション | 使用例 | 環境 | 終了ステータス | ファイル | 属性 | 関連項目 | 注意事項