本文に進む 日本−日本語
日本HPホーム 製品とサービス お客様サポート/ ダウンロード ソリューション ご購入の方法
≫ お問い合わせ
詳細検索オプション
日本HPホーム
HP-UX リファレンス: セクション 1 : ユーザーコマンド (A~M) > a

at(1)

HP-UX 11i Version 2: September 2004
≫ 

テクニカル ドキュメント

PDF版
フィードバック
ここから本文が始まります

 ≫ 目次

 ≫ 索引

名称

at, batch ― バッチコマンドの即時および指定時刻での実行

構文

指定の時刻で実行するコマンドの、標準入力からの入力:

at [-m] [-q queue] -t spectime

commands
eof

at [-m] [-q queue] time [date] [next timeunit | +count timeunit]

commands
eof

指定の時刻で実行するコマンドのファイルからの入力:

at -f job-file [-m] [-q  queue] -t spectime

at -f job-file [-m] [-q  queue] time [date] [next timeunit | +count timeunit]

スケジューリングされたジョブのリスト表示:

at -d job-id ...

at -l [job-id ...]

at -l -q queue

スケジューリングされたジョブの取り消し (削除):

at -r job-id ...

バッチプロセスとして実行するコマンドの、標準入力からの入力:

batch
commands
eof

バッチプロセスとして実行するコマンドの、ファイルからの入力:

batch < job-file

説明

at および batch コマンドは、 cron デーモンによるジョブの実行をスケジューリングします (cron(1M) を参照)。

at は、ジョブの実行を指定された時刻にスケジューリングします。また at は、スケジューリング済みの既存の at および batch ジョブを対象として、リスト表示 (-l) または削除 (-r) を行うこともできます。

batch は、即座に、あるいはシステムの負荷レベルが許す限り直ちに、 ジョブの実行をスケジューリングします。

1 つのジョブ内にコマンドを入力する方法は、次の 3 通りあります。

  • キーボードから、 at または batch コマンド行に続いて、各行にコマンドを指定します。 入力を終了するには、現在定義されている eof (ファイル終了) 文字を入力します。 デフォルトの eof は Ctrl-D です。 これは、ユーザーの環境で再定義することができます (stty(1) を参照)。

  • スクリプトファイルから入力を読み取るには、 at コマンドの -f オプションを使用します。

  • 直前のコマンドのパイプ出力から読み取ります。

オプションおよび引き数

at は以下のオプションおよび引き数を認識します。

commands 

at または batch によってシェルスクリプトとして実行できる 1 つまたは複数の HP-UX コマンド。

eof 

ファイル終了文字。ユーザーの環境で特に定義のない限り、デフォルトは Ctrl-D です。

job-file 

既存のファイルのパス名。

job-id 

ジョブが最初にスケジューリングされた時点で at または batch によって割り当てられたジョブ番号。

-d job-id ... 

指定されたジョブの内容を表示します。 特権ユーザー以外は、そのユーザーが所有するジョブの情報だけが表示されます。 適切な特権を持つユーザーは、すべてのジョブの情報を表示できます。

-f job-file 

標準入力を使用せずに、 job-file に入っているコマンドを読み込みます。

-l [job-id ...] 

指定されたジョブをリスト表示します。 job-id が 1 個も指定されなかった場合は、すべてのジョブをリスト表示します。

-m 

ジョブの実行後にメールを起動ユーザーに送信して、完了を知らせます。 ジョブによって生成された標準出力および標準エラーは、 ジョブ内で他の場所にリダイレクトされない限り、 起動ユーザーに自動的にメールを送信して、完了を知らせます。

-q queue 

指定したジョブを示された queue に登録します (queuedefs(4) を参照)。 待ち行列 ab、 および d から y までを使用できます。 at はデフォルトとして a を使用します。 batch は常に待ち行列 b を使用します。 b を除くすべての待ち行列では、 time または -t の指定が必要です。 at -qbbatch と同じです。 -l オプションと一緒に使うと、特定の待ち行列だけが対象となります。

-r job-id ... 

job-id で指定されたジョブを削除します。

-t spectime 

ジョブを開始する絶対時間を定義します。

spectime 

次の形式の日付と時刻:

[[CC]YY]MMDDhhmm [ . ss ]

ここで、それぞれ 2 桁の 10 進数は次の内容になります:

CC 

年の最初の 2 桁 (19, 20)

YY 

年の後半の 2 桁 (69-99, 00-68) 「警告」の項を参照してください。

MM 

月 (01-12)

DD 

日 (01-31)

hh 

時 (00-23)

mm 

分 (00-59)

ss 

秒 (00-61)

CCYY の両方を省略した場合、デフォルトは現在の年になります。

CC を省略した場合、 YY69-99 の範囲内であれば CC のデフォルトは 19 になります。それ以外であれば CC のデフォルトは 20 になります。

ss の範囲は、2 秒のうるう秒にも対応します。 ss60 または 61 の場合、 TZ 環境変数によって影響を受けた結果の時刻がうるう秒を参照していないと、 時刻は mm の後の 1 分後に設定されます。

ss を省略すると、デフォルトは 00 になります。

time [date] 

ジョブを起動する基準時刻を定義します。

time 

1 桁、2 桁、4 桁のいずれかで指定する時刻。 1 桁および 2 桁の数字は時間を表します。4 桁は、時間と分を表します。

また、 time はコロン (:)、 一重引用符 (')、 英字 h (h)、 ピリオド (.)、 カンマ (,) のいずれかで区切った 2 つの数字で指定することもできます。 分を表す桁と区切り文字の間にスペースがあってもかまいません。 langinfo(5)、 で定義する場合には、特殊な時間単位文字を使用できます。

午前または午後を区別するために、 am または pm を付加することができます。 それ以外の場合、24 時間のクロックで理解されます。たとえば、 08158:158'158h158.158,15 はどれも午前 8 時 15 分として読まれます。 接尾辞 zulu および utc を使用すると、グリニッジ標準時間 (GMT) を指定することができます。

特殊名 midnightnoonnow も認識されます。

date 

曜日 (スペルを完全に指定または略記)、または日、月およびオプションの年から構成される日付。日および年フィールドは数字で表されていなければなりません。また、月は完全なスペル、短縮形、または数字のいずれでも可能です。 日付文字列中のフィールドは、 スラッシュ (/)、 ハイフン (-)、 ピリオド (.)、 カンマ (,) などの区切り文字で区切ります。 langinfo(5) で定義されている場合、特殊な日付単位文字が入っていることがあります。 31 より大きい値のフィールドは年フィールドとして扱われ、日付文字列中の残りの 2 つのフィールドが、月フィールドと日フィールドとして扱われます。 指定した日付があいまいな場合は (例: 2/5 または 2/5/10)、 あいまいさを解決するために文字列 D_T_FMT langinfo(5) で定義されている場合) が使用されます。

2 つの特殊な日、 todaytomorrow も認識されます。 date を指定しない場合、指定の時刻が現在より後であれば today、 前であれば tomorrow とみなされます。

指定の月が現在の月より早い場合 (年を指定しなければ)、来年とみなされます。 69 から 99 までの 2 桁の年は 1969 から 1999 に拡張され、00 から 68 の 2 桁の年は 2000 から 2068 に拡張されます。

next timeunit |  + count timeunit
  

実行日付および時刻を、 time [date] で指定された基準時刻の後、特定の時間単位数だけ遅延させます。

count 

10 進数。 next+1 と同じです。

timeunit 

時間単位。 minuteshoursdaysweeksmonthsyears、 またはこれらの単数形です。

ジョブの処理方法

ジョブが受け入れられると、 at および batch は標準エラーに次の形式のメッセージをプリントします。

job job-id at execution-date

ここで job-idjobnumber.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 は、 dayshoursmidnightminutesmonthsnextnoonnowtodaytomorrowweeksyears、 の各語およびその単数形を指定できる言語を決定します。 LC_TIME または LC_MESSAGES が環境内で指定されていないか空白文字列に設定されている場合、 未指定または空白の各変数に対して LANG の値がデフォルトとして使われます。

LANG が指定されていないか空白文字列に設定されている場合、 LANG の代わりに C がデフォルトとして使われます (lang(5) を参照)。

国際化変数に無効な設定値が含まれている場合、 すべての国際化変数はデフォルトの"C"になります (environ(5) を参照)。

サポートされるコードセット

シングル/マルチバイトの文字コードセットがサポートされています。

注記

batch コマンドでは、スケジュールする各バッチジョブに対してユニークな job-id を要求します。ユニークな job-id を要求する最大試行回数は 100 回に制限されています。 100 回試行しても取得できなければ、 batch コマンドは キューが一杯です というメッセージを出して終了します。 BatchConfig 製品がインストールされていれば、 /etc/default/cron ファイルの BATCH_MAXTRYS=value 変数でこの最大試行回数を設定することができます。 BATCH_MAXTRYS には、任意の正の整数または INFINITE 文字列 (デフォルト値) を設定できます。 INFINITE に設定した場合、 batch は取得に成功するまで ユニークな job-id を要求します。

戻り値

終了コードは以下のいずれかに設定されます。

 0 

正常終了

 1 

異常終了

診断

at は、構文エラーおよび範囲外の時刻に対して、説明メッセージを生成します。

warning: commands will be executed using /usr/bin/sh

  • ログインシェルが POSIX シェル (/usr/bin/sh) でない場合、 at および batch は、 at および batch のジョブが /usr/bin/sh を使用して実行されるという警告メッセージを生成します。

以下のコマンドは、ファイル名 delayed-job という名前の POSIX シェルスクリプトを今から 5 分後に実行する 3 通りの方法を示します。

at -f delayed-job now + 5 minutes 
cat delayed-job | at now + 5 minutes 
at now + 5 minutes <delayed-job 

システム負荷レベルが許すときに典型的な HP-UX コマンド (この場合は nroff) を実行し、標準出力および標準エラーを次のファイルにリダイレクトします。

batch
nroff source-file >output-file 2>error-file 
eof     (the default is Ctrl-D)

ホームディレクトリの中の future に入っているジョブを、2013 年 12 月 27 日午前 12:20 に実行します。

at -f $HOME/future -t201312271220.00 

標準エラーをパイプにリダイレクトします (これは、シェルプロシージャでよく使用されます)。 出力のリダイレクト指定シーケンスが重要であることに注意してください。 標準エラーは標準出力の出力先にリダイレクトされ、標準出力はファイルに リダイレクトされます。 最初の「標準出力」(現在は、以前の標準エラーで構成されているもの) は、 mail プログラムにパイプ処理されます。

batch <<!!    (eofを一時的に !! とする)
nroff input-file 2>&1 1> output-file | mail loginid
!!

ホームディレクトリの中の 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
at 8:15 Jan 24
at 9:30am tomorrow
at now + 1 day
at -f job 5 pm Friday
at 17:40 Tor.              # in Danish
at 17h46 demain            # in French
at 5:30 26. Feb. 1988      # in German
at 12:00 26-02             # in Finnish

警告

date 引き数が数字で始まり、 time 引き数も接尾辞なしの数字で表されている場合、 time 引き数は、時間と分を正確に解釈できる 4 桁の数字でなければなりません。

単一の at コマンド内で next+count の両方を同時に使用すると、最初の演算子は受け入れられますが、 後の演算子は無視され、メッセージ等は出力されません。

同一のコマンド内で -ttime ... の両方を同時に使用すると、最初に指定したものは受け入れられますが 2 番目に指定したものは無視され、メッセージ等は出力されません。

cron と通信するのに使用される FIFO がいっぱいになると、 at は、 at が書き込もうとしているメッセージのスペースをとるため、 cron が FIFO から十分なメッセージを読み取るまで一時停止します。この状態は、 atcron のメッセージ処理速度より高速でメッセージを書き込む場合、または cron が実行されていない場合に発生します。

スケジューリングされたプロセスは、バックグラウンドで実行されます。 自分自身を呼び出すようなスクリプトファイルは、 ユーザーまたはシステムの使用可能プロセス数不足の原因となります。

あるジョブに対する実行時刻要求が、現在スケジューリングされているジョブの 実行時刻と重複する場合、 新しいジョブの時刻は、秒単位で次に使用可能な時刻に設定されます。

at は、開始時刻が現時代 (グリニッジ標準時間 1970 年 1 月 1 日 00:00:00) よりも前のジョブはスケジューリングしません。 at は、2037 年より先のジョブはスケジューリングしません。

制約

HP プロセスリソースマネージャ

オプションの HP プロセスリソースマネージャ (PRM) ソフトウェアが インストールおよび構成されている場合、 ジョブは、当該ジョブをスケジューリングしたユーザーの 初期プロセスリソースグループ内で開始されます。 ユーザーの初期グループが決定されるのは、 ジョブがスケジューリングされた時点ではなく、 ジョブが起動された時点です。ユーザーの初期グループが未定義の場合、 ジョブはユーザーのデフォルトグループ (PRMID=1) 内で実行されます。 HP PRM の構成方法については prmconfig(1) を、またユーザーの初期プロセスリソースグループの決定方法については prmconf(4) を参照してください。

著者

at は AT&T と HP で開発されました。

ファイル

/usr/bin/sh 

POSIX シェル

/var/adm/cron 

メイン cron ディレクトリ

/var/adm/cron/.proto
  

このファイルには、 at ジョブ用の環境を現在の環境と同じにするために at ジョブファイルに追加する一組のシェルコマンドが含まれています。 proto(4) を参照してください。

/usr/lib/cron/at.allow
  

許可されるユーザーのリスト

/usr/lib/cron/at.deny
  

拒否されるユーザーのリスト

/var/adm/cron/queuedefs
  

スケジューリング情報

/var/spool/cron/atjobs
  

スプール領域

参照

crontab(1), kill(1), mail(1), nice(1), ps(1), sh(1), stty(1), cron(1M), proto(4), queuedefs(4)

HP Process Resource Manager: 『『HP プロセスリソースマネージャ   ユーザーズガイド』』 中の prmconfig(1), prmconf(4)

標準準拠

at: SVID2, SVID3, XPG2, XPG3, XPG4

batch: SVID2, SVID3, XPG2, XPG3, XPG4

印刷用画面へ
プライバシー 本サイト利用時の合意事項
© 1983-2004 Hewlett-Packard Development Company, L.P.