LinuCレベル1 102試験の例題と解説
1.08.2ジョブスケジューリング
今回は102試験の試験範囲から、「1.08.2 ジョブスケジューリング」についての例題を解いてみます。
例題
毎日9時00分から10分ごとに、psコマンドの結果を/tmp/ps.txtに出力したい場合のcronの設定として、正しいものを選びなさい。ただし、cronの設定は「crontab -e」コマンドで設定するものとします。
- * * * 9-17 10 /usr/bin/ps -ef >> /tmp/ps.txt
- */10 9,17 * * * /usr/bin/ps -ef >> /tmp/ps.txt
- 9-17 */10 * * * /usr/bin/ps -ef >> /tmp/ps.txt
- */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設定と同じです。
--------------------------------------------------
(分) (時) (日) (月) (曜日) <実行ユーザ> <実行コマンド>
--------------------------------------------------