アスタリスク インフラTECH wiki

ジョブスケジューリング

最終更新:

manba

- view
メンバー限定 登録/ログイン

ジョブスケジューリング


ジョブとは?

ジョブとは、コンピュータが処理する仕事の単位のこと。
特に大型コンピュータでデータを処理する際に、
いくつかの処理にわけて実行・管理するような場合に、
その単位をジョブと言うことが多い。


【定期的にジョブを実行する】

定期的にジョブを実行するための管理は cron(常駐プログラム(デーモン)の一種)機能によって行われる。
cron 機能は、crond デーモンと、どんな作業をどんな頻度で実行すべきかを記述したスケジューリングを編集する
crontabコマンドから構成されます。
このデーモンは crontab をチェックし、何をすべきかを判断します。
ユーザーは crontabコマンドを使って crontabファイルを管理します。

cron とは
ジョブ(スクリプト)を自動実行するためのデーモンプロセス

crondとは
決まった時間に決まったプログラムなどを実行するスケジュール管理デーモン

crontabとは
スケジューリングを編集するコマンド

【crontabコマンド(設定ファイル)】

ユーザは、それぞれのcrontabファイルを「/var/spool/cron」配下に user名
という名前で所有しており使用するコマンドは、
そのcrontabファイルを所有しているユーザの権限で実行されるので、
コマンド使用の際には注意が必要です。

crontab [オプション]

オプション 解説
-e viエディタが起動して設定ファイルの編集を行ないます
-l crontabファイルの内容を表示します
-r crontabファイルを削除します
-u ユーザー名 userで指定したユーザのcrontabファイルを操作の対象とします。
なお、このオプションは、rootユーザのみ使用できます。

cron コマンドの設定


crontabファイルで、cron コマンドの実行を記述する行は、
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時)など
結構柔軟に指定のできる。


ジョブの一覧表示


「at」、「batch」、「crontab」などでスケジュールされたジョブを一覧表示する。
スーパーユーザの権限で実行すると、すべてのユーザーのジョブを一覧表示する。

# atq [オプション]

オプション 説明
-q [キュー] 実行待ちのジョブを確認するキューを指定します。


実行待ちのジョブの削除


スケジュールされたジョブを削除する

# atrm [num]