ジョブスケジューリング
ジョブとは?
ジョブとは、コンピュータが処理する仕事の単位のこと。
特に大型コンピュータでデータを処理する際に、
いくつかの処理にわけて実行・管理するような場合に、
その単位をジョブと言うことが多い。
特に大型コンピュータでデータを処理する際に、
いくつかの処理にわけて実行・管理するような場合に、
その単位をジョブと言うことが多い。
【定期的にジョブを実行する】
定期的にジョブを実行するための管理は cron(常駐プログラム(デーモン)の一種)機能によって行われる。
cron 機能は、crond デーモンと、どんな作業をどんな頻度で実行すべきかを記述したスケジューリングを編集する
crontabコマンドから構成されます。
このデーモンは crontab をチェックし、何をすべきかを判断します。
ユーザーは crontabコマンドを使って crontabファイルを管理します。
cron 機能は、crond デーモンと、どんな作業をどんな頻度で実行すべきかを記述したスケジューリングを編集する
crontabコマンドから構成されます。
このデーモンは crontab をチェックし、何をすべきかを判断します。
ユーザーは crontabコマンドを使って crontabファイルを管理します。
cron とは
ジョブ(スクリプト)を自動実行するためのデーモンプロセス
ジョブ(スクリプト)を自動実行するためのデーモンプロセス
crondとは
決まった時間に決まったプログラムなどを実行するスケジュール管理デーモン
決まった時間に決まったプログラムなどを実行するスケジュール管理デーモン
crontabとは
スケジューリングを編集するコマンド
スケジューリングを編集するコマンド
【crontabコマンド(設定ファイル)】
ユーザは、それぞれのcrontabファイルを「/var/spool/cron」配下に user名
という名前で所有しており使用するコマンドは、
そのcrontabファイルを所有しているユーザの権限で実行されるので、
コマンド使用の際には注意が必要です。
という名前で所有しており使用するコマンドは、
そのcrontabファイルを所有しているユーザの権限で実行されるので、
コマンド使用の際には注意が必要です。
crontab [オプション]
オプション | 解説 |
-e | viエディタが起動して設定ファイルの編集を行ないます |
-l | crontabファイルの内容を表示します |
-r | crontabファイルを削除します |
-u ユーザー名 | userで指定したユーザのcrontabファイルを操作の対象とします。 |
なお、このオプションは、rootユーザのみ使用できます。 |
cron コマンドの設定
crontabファイルで、cron コマンドの実行を記述する行は、
6つのフィールドで形成されており
分 時 日 月 曜日 コマンド
コマンドの実行時間をさまざまな形式で指定することが出来ます。
6つのフィールドで形成されており
分 時 日 月 曜日 コマンド
コマンドの実行時間をさまざまな形式で指定することが出来ます。
フィールドでは、 '*' を使用することが可能です。
フィールド | 内容 |
分 | 0~59 |
時 | 0~23 |
日 | 1~31 |
月 | 1~12 もしくは jan~dec までの文字列 |
曜日 | 0~7 [0,7は日曜日] or sun~sat |
コマンド | 有効なコマンドを記述します |
空白を含むことも可能 |
atコマンド
atコマンドとは
- 指定した時間にジョブを実行する。
※定期的にジョブを実行するのではなく、1 度だけ実行したいときとか。
- 実行結果はメールで登録者に送られる。
- atはコマンドなどを標準入力で指定することになる。
- コマンドを入力し終えたら,Ctrlキーとdキーを同時に押すことでatコマンドから抜け出せる。
# at [オプション]
オプション
-f | コマンドを記述したファイルを指定する |
-l | 実行待ちのジョブを表示する |
-d | ジョブを削除する |
TIME | ジョブを実行する時刻を指定する |
※日付は,MMDDYY,MM/DD/YY,MM.DD.YYなどで指定できる。
ただし,MMは月をDDは日をYYは年の下2 桁を表す。
時間はhh:mmで指定できるほか, midnight(真夜中),noon (正午),teatime (午後4時)など
結構柔軟に指定のできる。
ただし,MMは月をDDは日をYYは年の下2 桁を表す。
時間はhh:mmで指定できるほか, midnight(真夜中),noon (正午),teatime (午後4時)など
結構柔軟に指定のできる。
ジョブの一覧表示
「at」、「batch」、「crontab」などでスケジュールされたジョブを一覧表示する。
スーパーユーザの権限で実行すると、すべてのユーザーのジョブを一覧表示する。
スーパーユーザの権限で実行すると、すべてのユーザーのジョブを一覧表示する。
# atq [オプション]
オプション | 説明 |
-q [キュー] | 実行待ちのジョブを確認するキューを指定します。 |
実行待ちのジョブの削除
スケジュールされたジョブを削除する
# atrm [num]