LinuCレベル1 102試験の例題と解説

1.08.2ジョブスケジューリング

今回は、LinuC 102試験の試験範囲から「1.08.2 ジョブスケジューリング」についての例題を解いてみます。
cronを使ったジョブの実行について確認しておきましょう。

Linucレベル1 102試験 出題範囲


例題

「crontab -l」コマンドで現在設定されているユーザのcronジョブを表示したところ、以下が表示された。

0 */2 * * 2 /usr/local/bin/check

このcronジョブの説明で正しいものを一つ選択してください。

  1. 毎月2日2時0分に実行される
  2. 2月2日0時に実行される
  3. 毎週火曜日2時間おきに実行される
  4. 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研究室 橋本知里

ページトップへ