名前 | 形式 | 機能説明 | オプション | 使用例 | 環境 | 終了ステータス | ファイル | 属性 | 関連項目 | 注意事項
crontab [filename]
crontab -e [username]
crontab -l [username]
crontab -r [username]
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 個をマイナス記号 (–) で区切って指定します。ここで指定する日時は、cron(1M) デーモンのタイムゾーンとして解釈され、システム全体のタイムゾーンとして /etc/default/init に設定されます。これらのエントリには、呼び出したユーザーのタイムゾーンは使用されません。日付は、2 つのフィールド (日および曜日) で指定できます。どちらのフィールドも、要素のリストとして指定された場合に付加されます。「使用例」を参照してください。
crontab ファイル内の行の 6 番目のフィールドは、 指定した時間にシェルによって実行されるコマンド文字列です。このフィールド内の % 文字 (\ によってエスケープされているものは除く) は、復帰改行 (NEWLINE) 文字に変換されます。
シェルによって実行されるのは、このコマンドフィールドの第 1 行 (` % ' または行の終わりまで) のみです。その他の行は、標準入力として実行されます。空行、または ` # ' で始まる行はコメントとみなされ、無視されます。
シェルは、sh の arg0 によって、 ユーザーの $HOME ディレクトリから呼び出されます。自分の .profile を実行したいユーザーは、 crontab ファイルの中で明示的に指定する必要があります。cron は、HOME、LOGNAME、SHELL(=/bin/sh)、TZ、PATH を定義し、すべてのシェルのデフォルト環境を指定します。user の cron ジョブのデフォルトの PATH は /usr/bin で、 root の cron ジョブ のデフォルトは /usr/sbin:/usr/bin です。デフォルトの PATH は /etc/default/cron 中に設定できます (cron(1M) を参照)。
コマンドの標準出力や標準エラー出力をリダイレクトするように指定していないと、生成されたすべての出力またはエラーが、ユーザーにメールで通知されることになります。
cron デーモンのタイムゾーンは、cron エントリのシステム全体のタイムゾーンとして設定されます。また、さらに /etc/default/init を使用してシステム全体のデフォルトタイムゾーンとして設定されます。
夏時間や冬時間などが有効になっている場合には、切り替え期間に予定されているジョブは、1 回だけ実行されたり、2 回実行されたり、またはまったく実行されないこともあります。
次のオプションを指定できます。
現在のユーザーの crontab ファイルのコピーを編集します。crontab が存在しない場合は、空のファイルを作成して編集します。 編集が終了すると、このファイルがユーザーの crontab ファイルとしてインストールされます。username が指定された場合、 現在のユーザーの crontab ファイルではなく、指定のユーザーの crontab ファイルを編集します。このようにユーザー名を指定できるのは、solaris.jobs.admin の承認を受けているユーザーだけです。-e オプションを指定してファイルを編集するときに起動するエディタは、環境変数 EDITOR によって決まります。 デフォルトのエディタは ed(1) です。crontab のジョブは、crontab を使用して登録するようにしてください。crontab ファイルを直接編集してジョブを追加しないでください。これは、cron はこの方法による変更を認識しないためです。
crontab ファイル内のすべての行を削除すると、古い crontab ファイルが復元されます。すべての行を削除する正しい方法は、-r オプションを使用して crontab ファイルを削除する方法です。
username が指定された場合、 現在のユーザーの crontab ファイルではなく、指定のユーザーの crontab ファイルを編集します。これを行えるのは、root と solaris.jobs.admin 承認を持つユーザーだけです。
crontab を起動したユーザーの crontab ファイルの内容を表示します。 -l オプションのあとにユーザー名を指定して、指定のユーザーの crontab ファイルを表示できるのは、root または solaris.jobs.admin の承認を受けているユーザーだけです。
crontab ディレクトリからユーザーの crontab を削除します。-r オプションのあとにユーザー名を指定して、指定のユーザーの crontab ファイルを削除できるのは、root または solaris.jobs.admin の承認を受けているユーザーだけです。
平日 (月 - 金) の午前 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. |
この例では、毎月 1 日と 15 日、さらに毎週月曜日にコマンドが実行されます。
0 0 1,15 * 1 |
曜日だけ、もしくは日付だけを指定する場合には、もう一方のフィールドに * を指定します。次に例を示します。
0 0 * * 1 |
毎週月曜日にコマンドが実行されます。
crontab の実行に影響を与える次の環境変数についての詳細は、environ(5) を参照してください。LANG、LC_ALL 、LC_CTYPE、LC_MESSAGES、および NLSPATH。
主 cron ディレクトリ
許可されているユーザーのリスト
cron のデフォルト設定を含む
許可されていないユーザーのリスト
アカウンティング情報
crontab のスプール空間
次の属性についての詳細は、マニュアルページの attributes(5) を参照してください。
属性タイプ |
属性値 |
---|---|
使用条件 |
SUNWcsu |
インタフェースの安定性 |
標準 |
atq(1), atrm(1), auths(1), ed(1), sh(1), vi(1), cron(1M), su(1M), auth_attr(4), attributes(5), environ(5), standards(5)
誤って引数なしで crontab コマンドを実行してしまった場合、CTRL–D を使って処理を中止しないでください。 CTRL–D を使用すると、 crontab ファイルからすべてのエントリが 削除されてしまいます。 処理の中止には、CTRL–C を使用してください。
cron を更新するときには、まず、既存の crontab を調べて、更新時近くにイベントがスケジュールされているかどうかをチェックします。イベントが予定されていた時刻より後に更新プロセスが完了すると、当該エントリが失われる可能性があります。この現象は次のように発生します。ユーザーの crontab ファイルの内部ビューを更新するように crontab から通知されると、cron はまず、既存のcrontabファイルの内部ビューとスケジュールされている内部イベントを削除します。 次に、新しい crontab ファイルを読み込んで、crontab の内部ビューと内部イベントを構築し直します。この最後の段階には (特に、crontab ファイルが大きいときには) 時間がかかります。既存の crontab エントリが更新時に極めて近くに予定されていると、予定された時刻の後に最後の段階が完了することがあり得ます。安全を期すために、新しいジョブは少なくとも現在の日付と時刻の 60 秒後に起動するようにしてください
root 以外の承認されたユーザーが別のユーザーの crontab ファイルを編集した場合、その結果として予測できない動作を引き起こすことがあります。代わりに、承認されたユーザーはまず、su(1M) を使ってスーパーユーザーからその別のユーザーのログインになり、そのあとで crontab ファイルに変更を加えるようにするべきです。
名前 | 形式 | 機能説明 | オプション | 使用例 | 環境 | 終了ステータス | ファイル | 属性 | 関連項目 | 注意事項