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

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

今回は102試験の試験範囲から、「1.08.2 ジョブスケジューリング」についての例題を解いてみます。

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


例題

毎日9時00分から10分ごとに、psコマンドの結果を/tmp/ps.txtに出力したい場合のcronの設定として、正しいものを選びなさい。ただし、cronの設定は「crontab -e」コマンドで設定するものとします。

  1. * * * 9-17 10 /usr/bin/ps -ef >> /tmp/ps.txt
  2. */10 9,17 * * * /usr/bin/ps -ef >> /tmp/ps.txt
  3. 9-17 */10 * * * /usr/bin/ps -ef >> /tmp/ps.txt
  4. */10 9 * * * /usr/bin/ps -ef >> /tmp/ps.txt

※この例題は実際の試験問題とは異なります。


解答と解説

答えは「4. */10 9 * * * /usr/bin/ps -ef >> /tmp/ps.txt」です。

ユーザのcronの設定は以下のように記述を行います。
--------------------------------------------------
(分) (時) (日) (月) (曜日) <実行コマンド>
--------------------------------------------------

それぞれのフィールドに設定可能な値は以下の通りです。
・分  :0~59
・時  :0~23
・日  :1~31
・月  :1~12
・曜日:0~7
        - 0=日曜日
        - 1=月曜日
        - 2=火曜日
        - 3=水曜日
        - 4=木曜日
        - 5=金曜日
        - 6=土曜日
        - 7=日曜日

また、「,」、「-」などを使用し、詳細な条件を指定することも可能です。
・「,」:「,」で列挙した条件で実行します。
         時間のフィールドで「1,3,5」と指定した場合、1時、3時、5時にジョブを実行します。
・「-」:指定した範囲で実行します。
         曜日のフィールドで「1-5」と指定した場合、月曜日から金曜日にジョブを実行します。
・「/」:指定した間隔で実行します。
         分のフィールドで「*/5」と指定した場合、5分間隔でジョブを実行します。
・「*」:全てを指定します。
         日のフィールドで指定した場合、毎日ジョブを実行します。

そのため、毎日9時00分から10分ごとにコマンドを実行させる場合の設定は、以下のようになります。
--------------------------------------------------
*/10 9 * * * <実行コマンド>
--------------------------------------------------

cronは、ユーザごとの設定の他に、/etc/crontabや/etc/cron.d/配下に設定ファイルを配置することで設定が可能です。
この場合は、設定時に以下のように実行ユーザの指定が必要になります。
その他の項目については、ユーザのcron設定と同じです。
--------------------------------------------------
(分) (時) (日) (月) (曜日) <実行ユーザ> <実行コマンド>
--------------------------------------------------


ページトップへ