| 日本−日本語 |
|
|
|
![]() |
HP-UX リファレンス: セクション 1 : ユーザーコマンド (A〜M) > aat(1)HP-UX 11i Version 1: September 2005 |
|
名称at, batch ― バッチコマンドの即時および指定時刻での実行 構文指定の時刻で実行するコマンドの、標準入力からの入力:at [-m] [-q queue] -t spectime commands at [-m] [-q queue] time [date] [next timeunit | +count timeunit] commands 説明at および batch コマンドは、 cron デーモンによるジョブの実行をスケジューリングします (cron(1M) を参照)。 at は、ジョブの実行を指定された時刻にスケジューリングします。また at は、スケジューリング済みの既存の at および batch ジョブを対象として、リスト表示 (-l) または削除 (-r) を行うこともできます。 batch は、即座に、あるいはシステムの負荷レベルが許す限り直ちに、 ジョブの実行をスケジューリングします。 1 つのジョブ内にコマンドを入力する方法は、次の 3 通りあります。
オプションおよび引き数at は以下のオプションおよび引き数を認識します。
ジョブの処理方法ジョブが受け入れられると、 at および batch は標準エラーに次の形式のメッセージをプリントします。 job job-id at execution-date ここで job-id は jobnumber.queue, という形式のジョブ識別子で、たとえば 756284400.a のようになります。また execution-date はジョブの実行がリリースされる日付および時刻です。 ログインシェルが POSIX シェル (/usr/bin/sh) でない場合、コマンドは警告メッセージもプリントします。 warning: commands will be executed using /usr/bin/sh at ジョブのデフォルトの待ち行列は a です。 batch ジョブは常に待ち行列 b に入ります。 -q オプションを参照してください。 at または batch ジョブは、2 つの部分から成るスクリプトで構成され、 このスクリプトは POSIX シェルから実行可能な /var/spool/cron/atjobs に保存されています。 最初の部分は、環境をセットアップして、 at または batch コマンド発行時点の環境と同じになるようにします。 このとき、現在のシェル環境変数、現在のディレクトリ、 umask および ulimit が対象となります (ulimit(2)、 umask(1)、 proto(4) を参照)。 オープンされているファイルの記述子、トラップ、および優先順位は失われます。 2 番目の部分は、ユーザーが入力したコマンドで構成されます。 cron は、ジョブをディスパッチすると、 POSIX シェルを起動してスクリプトを実行します。 一時点で待ち行列から実行されるジョブの数は、ファイル /var/adm/cron/queuedefs 内のパラメータによって制御されます (queuedefs(4) を参照)。 ジョブから発行された標準出力および標準エラーは、 ジョブで他の場所にリダイレクトされていない限り、 ユーザーにメールとして送信されます。 スケジューリングされたジョブは、 SIGHUP ハングアップシグナルの影響を受けず、 ユーザーがログオフしてもスケジューリングされたままです。 ユーザーに at および batch コマンドの使用が許可されるのは、ユーザー名がファイル /usr/lib/cron/at.allow 内に記述されている場合です。 このファイルが存在しない場合、ユーザーが at および batch コマンドを使用できるのは、 ユーザー名がファイル /usr/lib/cron/at.deny に ない 場合です。 どちらのファイルも存在しない場合、 ジョブの登録を許可されるのはスーパーユーザーだけです。 at.deny のみ存在し、しかもこのファイルが空の場合は、すべてのユーザーが at および batch を使用することができます。 allow/deny ファイルには、1 行につき 1 人のユーザー名が記述されます。 すべてのユーザーは、自分のジョブのリスト表示および削除が可能です。 適切な特権を持っているユーザーは、 他のユーザーのジョブのリスト表示および削除も実行できます。 多言語化対応環境変数LC_TIME は、日付および時刻文字列の形式と内容を決定します。 LC_MESSAGES は、メッセージの表示に使われる言語を指定します。 また LC_MESSAGES は、 days、 hours、 midnight、 minutes、 months、 next、 noon、 now、 today、 tomorrow、 weeks、 years、 の各語およびその単数形を指定できる言語を決定します。 LC_TIME または LC_MESSAGES が環境内で指定されていないか空白文字列に設定されている場合、 未指定または空白の各変数に対して LANG の値がデフォルトとして使われます。 LANG が指定されていないか空白文字列に設定されている場合、 LANG の代わりに C がデフォルトとして使われます (lang(5) を参照)。 国際化変数に無効な設定値が含まれている場合、 すべての国際化変数はデフォルトの"C"になります (environ(5) を参照)。 注記batch コマンドは、スケジューリング対象のバッチジョブごとに一意の job-id を要求します。 一意の job-id を要求できる回数は 100 回までに制限されています。 100 回試行して成功しなかった場合は、 batch コマンドは queue full というメッセージを出力して終了します。 /etc/default/cron ファイル内の変数 BATCH_MAXTRYS=value を設定することによって、この回数を構成することができます。 BATCH_MAXTRYS の値は、任意の正数または文字列 INFINITE (デフォルト値) にすることができます。 この値が INFINITE に設定されている場合、 batch は一意の job-id が取得できるまで要求し続けます。 at コマンドは、指定された時刻に対して、キューごとに 1 つのジョブしかスケジューリングすることができません。 既にジョブが指定された時刻にスケジューリングされていた場合は、 at コマンドはその 1 秒後に新しいジョブをスケジューリングします。 /etc/default/cron ファイル内の変数 MULTI_JOB_SUPPORT を 1 に設定することによって、この制限を取り除くことができます。 MULTI_JOB_SUPPORT が 1 に設定されている場合は、 at は同時刻に対する複数のジョブのスケジューリングをサポートし、 jobnumber.queue.index という形式の job-id を生成します。 ここで、index は指定された時刻にスケジューリングされたジョブの総数です。 変数 MULTI_JOB_SUPPORT を 0 に設定することによって、この機能を無効にすることができます。 診断at は、構文エラーおよび範囲外の時刻に対して、説明メッセージを生成します。 warning: commands will be executed using /usr/bin/sh
例以下のコマンドは、ファイル名 delayed-job という名前の POSIX シェルスクリプトを今から 5 分後に実行する 3 通りの方法を示します。 at -f delayed-job now + 5 minutes システム負荷レベルが許すときに典型的な HP-UX コマンド (この場合は nroff) を実行し、標準出力および標準エラーを次のファイルにリダイレクトします。 batch ホームディレクトリの中の future に入っているジョブを、2013 年 12 月 27 日午前 12:20 に実行します。 at -f $HOME/future -t201312271220.00 標準エラーをパイプにリダイレクトします (これは、シェルプロシージャでよく使用されます)。 出力のリダイレクト指定シーケンスが重要であることに注意してください。 標準エラーは標準出力の出力先にリダイレクトされ、標準出力はファイルに リダイレクトされます。 最初の「標準出力」(現在は、以前の標準エラーで構成されているもの) は、 mail プログラムにパイプ処理されます。 batch <<!! (eofを一時的に !! とする) ホームディレクトリの中の jobfile に入っているジョブを、 次の火曜日の 5:00am に実行します。 at -f $HOME/jobfile 5am tuesday next week 同じジョブを、次の火曜日の 1 週間後の 5:00am に実行します (すなわち、2 度目の火曜日)。 at -f $HOME/jobfile 5am tuesday + 2 weeks ホームディレクトリ中のディレクトリ jobs にあるファイル weekly-run にコマンドを追加して、このコマンドが実行のたびに自分自身を 自動的にスケジューリングし直すようにします。 この例は、自分自身を毎週火曜日 1900 (7:00 p.m.) にスケジューリングします。 echo "sh $HOME/jobs/weekly-run" | at 1900 thursday next week 以下のコマンドは、 at で認識される形式をいくつか示しており、これらは母国語使用を含みます。 at 0815 Jan 24 警告date 引き数が数字で始まり、 time 引き数も接尾辞なしの数字で表されている場合、 time 引き数は、時間と分を正確に解釈できる 4 桁の数字でなければなりません。 単一の at コマンド内で next と +count の両方を同時に使用すると、最初の演算子は受け入れられますが、 後の演算子は無視され、メッセージ等は出力されません。 同一のコマンド内で -t と time ... の両方を同時に使用すると、最初に指定したものは受け入れられますが 2 番目に指定したものは無視され、メッセージ等は出力されません。 cron と通信するのに使用される FIFO がいっぱいになると、 at は、 at が書き込もうとしているメッセージのスペースをとるため、 cron が FIFO から十分なメッセージを読み取るまで一時停止します。この状態は、 at が cron のメッセージ処理速度より高速でメッセージを書き込む場合、または cron が実行されていない場合に発生します。 スケジューリングされたプロセスは、バックグラウンドで実行されます。 自分自身を呼び出すようなスクリプトファイルは、 ユーザーまたはシステムの使用可能プロセス数不足の原因となります。 あるジョブに対する実行時刻要求が、現在スケジューリングされているジョブの 実行時刻と重複する場合、 新しいジョブの時刻は、秒単位で次に使用可能な時刻に設定されます。 at は、開始時刻が現時代 (グリニッジ標準時間 1970 年 1 月 1 日 00:00:00) よりも前のジョブはスケジューリングしません。 at は、2037 年より先のジョブはスケジューリングしません。 制約HP プロセスリソースマネージャオプションの HP プロセスリソースマネージャ (PRM) ソフトウェアが インストールおよび構成されている場合、 ジョブは、当該ジョブをスケジューリングしたユーザーの 初期プロセスリソースグループ内で開始されます。 ユーザーの初期グループが決定されるのは、 ジョブがスケジューリングされた時点ではなく、 ジョブが起動された時点です。ユーザーの初期グループが未定義の場合、 ジョブはユーザーのデフォルトグループ (PRMID=1) 内で実行されます。 HP PRM の構成方法については prmconfig(1) を、またユーザーの初期プロセスリソースグループの決定方法については prmconf(4) を参照してください。 ファイル
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||