24.4. batch を使用した System Load Drop で実行するジョブのスケジュール設定
1 回限りのタスク (別名ジョブ) を、システムの平均負荷が指定値を下回ったときに実行するようスケジュール設定するときは、batch
ユーティリティーを使用します。リソース負荷の高いタスクを実行したり、システムがアイドル状態になるのを防いだりするときに有用です。
ユーザーは、batch
ユーティリティーを使用して batch ジョブを指定します。このジョブはその後 atd
サービスにより実行されます。
24.4.1. Batch ジョブの前提条件
batch
ユーティリティーは at
パッケージで提供され、batch
ジョブは atd
サービスが管理します。したがって batch
ジョブの前提条件は、at
ジョブの前提条件と同じです。「at ジョブの前提条件」を参照してください。
24.4.2. Batch ジョブのスケジュール設定
ジョブは常に複数のユーザーにより実行されます。希望するユーザーとしてログインし、以下を実行します。
~]# batch
at>
プロンプトが表示されたら、以下のコマンドを入力して実行し、Enter を押します。~]# batch at> sh /usr/local/bin/my-script.sh
実行したいすべてのコマンドにこの手順を繰り返します。
注記at>
プロンプトに、使用されるシェルが表示されます。warning: commands will be executed using /bin/sh
batch ユーティリティーは、ユーザーの SHELL 環境変数にあるシェルのセット、ユーザーのログインシェル、または
/bin/sh
のうち最初に見つかったものを使用します。- 空の行で Ctrl+D キーを押し、ジョブの指定を完了します。
コマンドセットやスクリプトが標準出力に情報を表示しようとする場合、その出力はユーザーにメールで送信されます。
デフォルトのシステム負荷平均の制限の変更
デフォルトでは、batch
ジョブはシステムの負荷平均が 0.8 を下回ったときに開始されます。この設定は、atq
サービスでも維持されます。システム負荷の限界を変更するには、以下を行います。
/etc/sysconfig/atd
ファイルに以下の行を追加します。OPTS='-l x'
x を新しい負荷平均と置き換えます。以下に例を示します。
OPTS='-l 0.5'
atq
サービスを再起動します。# systemctl restart atq
保留中のジョブの表示
保留中のジョブリストを表示するには、atq
コマンドを使用します。「保留中のジョブの表示」を参照してください。
スケジュール設定したジョブの削除
スケジュールを設定したジョブを削除するには、atrm
コマンドを使用します。「スケジュール設定したジョブの削除」を参照してください。
Batch へのアクセス制御
batch
ユーティリティーの使用を制限することもできます。これは、batch
と at
ユーティリティーの両方に同時に実行されます。「at と batch へのアクセスの制御」を参照してください。