LinuCレベル1 102試験の例題と解説
1.08.2ジョブスケジューリング
今回は、LinuC 102試験の試験範囲から「1.08.2 ジョブスケジューリング」についての例題を解いてみます。
cronを使ったジョブの実行について確認しておきましょう。
例題
「crontab -l」コマンドで現在設定されているユーザのcronジョブを表示したところ、以下が表示された。
0 */2 * * 2 /usr/local/bin/check
このcronジョブの説明で正しいものを一つ選択してください。
- 毎月2日2時0分に実行される
- 2月2日0時に実行される
- 毎週火曜日2時間おきに実行される
- 2ヵ月ごとに2時0分に実行される
※この例題は実際の試験問題とは異なります。
解答と解説
正解は、「3. 毎週火曜日2時間おきに実行される」です。
cronタブファイルの書式は以下の通りです。
分 時 日 月 曜日 コマンド
cronファイルのフィールドに設定できる値は以下の通りです。
分 | … 0~59までの整数 |
時 | … 0~23までの整数 |
日 | … 1~31までの整数 |
月 | … 1~12までの整数 |
曜日 | … 0~7までの整数(0,7:日曜日~6:土曜日)、またはSun, Monなどの文字列 |
以下のような詳細設定も可能です。
全てにマッチさせる場合 | … アスタリスク(*)を指定します。日のフィールドで指定した場合、毎日ジョブを実行します。 |
複数値を指定する場合 | … カンマ(,)区切りにします。時間のフィールドで「1,3,5」と指定した場合、1時、3時、5時にジョブを実行します。 |
範囲を指定する場合 | … ハイフン(-)で範囲を指定します。曜日のフィールドで「1-5」と指定した場合、月曜日から金曜日にジョブを実行します。 |
間隔を指定する場合 | … スラッシュ(/)で間隔を指定します。分のフィールドで「*/5」と指定した場合、5分間隔でジョブを実行します。 |
そのため、例題のcronジョブは毎週火曜日2時間ごとに/usr/local/bin/check プログラムを実行する設定となっています。
0 */2 * * 2 /usr/local/bin/check
その他の選択肢の解説は以下です。
1.毎月2日2時0分に実行される
誤りです。
毎月2日2時0分に実行されるようにするには以下のように設定します。
0 2 2 * * コマンド
2.2月2日0時に実行される
誤りです。
2月2日0時に実行されるようにするには以下のように設定します。
0 0 2 2 * コマンド
3.毎週火曜日2時間おきに実行される
正解です。
時間のフィールドで「*/2」と指定されているため、2時間おきに実行されます。また、曜日のフィールドが「2」ですので、毎週火曜日に実行されます。
4.2ヵ月ごとに2時0分に実行される
誤りです。
2ヵ月ごとに2時0分に実行されるようにするには以下のように設定します。
0 2 * */2 * コマンド
定期的にジョブを実行するcronは、スケジュールを管理するcrondというデーモンと、スケジューリングを編集するcrontabコマンドから構成されます。
また、ユーザのcrontabファイルとは別に、システム用ののcrontabファイルもあります。
それぞれファイルの書式と編集方法を理解し、正しく設定できるようにしましょう。
例題作成者
株式会社デージーネット OSS研究室 橋本知里