Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

23.4. batch を使用した System Load Drop で実行するジョブのスケジュール設定

1 回限りのタスク (別名ジョブ) を、システムの平均負荷が指定値を下回ったときに実行するようスケジュール設定するときは、batch ユーティリティーを使用します。リソース負荷の高いタスクを実行したり、システムがアイドル状態になるのを防いだりするときに有用です。
ユーザーは、batch ユーティリティーを使用してbatch ジョブを指定します。このジョブはその後atd サービスにより実行されます。

23.4.1. Batch ジョブの前提条件

batch ユーティリティーは at パッケージで提供され、batch ジョブは atd サービスが管理します。したがって batch ジョブの前提条件は、at ジョブの前提条件と同じです。「at ジョブの前提条件」 を参照してください。

23.4.2. Batch ジョブのスケジュール設定

  1. ジョブは常に複数のユーザーにより実行されます。希望するユーザーとしてログインし、以下を実行します。
    ~]# batch
  2. at> プロンプトが表示されたら、以下のコマンドを入力して実行し、Enter を押します。
    ~]# batch
    at> sh /usr/local/bin/my-script.sh
    実行したいすべてのコマンドにこの手順を繰り返します。

    注記

    at> プロンプトに、使用されるシェルが表示されます。
    警告: コマンドは /bin/sh を使用して実行されます。
    batch ユーティリティーは、ユーザーの SHELL 環境変数にあるシェルのセット、ユーザーのログインシェル、または /bin/sh のうち最初に見つかったものを使用します。
  3. 空の行で Ctrl+D キーを押し、ジョブの指定を完了します。

注記

コマンドセットやスクリプトが標準出力に情報を表示しようとする場合、その出力はユーザーにメールで送信されます。

デフォルトのシステム負荷平均の制限の変更

デフォルトでは、batch ジョブはシステムの負荷平均が 0.8 を下回ったときに開始されます。この設定は、atq サービスでも維持されます。システム負荷の限界を変更するには、以下を行います。
  1. /etc/sysconfig/atd ファイルに以下の行を追加します。
    OPTS='-l x'
    x を新しい負荷平均と置き換えます。以下に例を示します。
    OPTS='-l 0.5'
  2. atq サービスを再起動します。
    # systemctl restart atq

保留中のジョブの表示

保留中のジョブ一覧を表示するには、atq コマンドを使用します。「保留中のジョブの表示」 を参照してください。

スケジュール設定したジョブの削除

スケジュールを設定したジョブを削除するには、atrm コマンドを使用します。「スケジュール設定したジョブの削除」 を参照してください。

Batch へのアクセス制御

ユーザーは、batch ユーティリティーの使用を制限することもできます。これは、batchat ユーティリティーの両方に同時に実行されます。「at と batch へのアクセスの制御」 を参照してください。