HP OpenVMS Systems Documentation |
| 前へ | 次へ | 目次 | 索引 |
Backup ユーティリティ(BACKUP) を起動し,次のいずれかのバックアップ操作を行います。
- ディスク・ファイルのコピーを作成する。
- ディスクまたは磁気テープ上に,BACKUP により作成されたファイル中のデータとしてディスク・ファイルを保存 ( セーブ ) する (BACKUP により作成されたファイルをセーブ・セットと呼ぶ )。
- BACKUP セーブ・セットからディスク・ファイルを回復(リストア)する。
- BACKUP セーブ・セットに保存されているディスク・ファイルまたはファイルを,他のディスク・フィルと比較する。
- BACKUP セーブ・セットに保存されているファイルに関する情報を出力装置またはファイルに表示する。
BACKUP を使用してシステム・ディスクをバックアップすることはできません。システム・ディスクはブートストラップを使用しなければなりません。
BACKUP およびシステム・ディスクのバックアップについての詳細は,『OpenVMS システム管理者マニュアル』および『OpenVMS システム管理ユーティリティ・リファレンス・マニュアル』あるいはオンライン・ヘルプを参照してください。
BACKUP 入力指定出力指定
コマンド・プロシージャ内でラベルを付けられたサブルーチンへ制御を移します。
CALL ラベル [パラメータ [...]]
ラベル
コマンド行の最初に現われる,1 〜 255 桁の英数字からなるラベル名です。ラベルにブランクを含めることはできません。CALL コマンドが実行されるとき,指定されたラベルに後続するコマンドへ制御が移ります。ラベルは,現在のコマンド・プロシージャの CALL 文の前に,あるいは後に置くことができます。コマンド・プロシージャ内のラベルは,コロン (:) で終了してください。サブルーチンのラベルは一意でなければなりません。
より内側のプロシージャ・レベルのラベルは,外側のプロシージャレベルからはアクセスできません。次の例を参照してください。
$CALL B $A: SUBROUTINE $ B: SUBROUTINE $ ENDSUBROUTINE $ENDSUBROUTINE
この例では,サブルーチン A 内のラベル B は,サブルーチン A より外側ではアクセスできません。
パラメータ [...]
コマンド・プロシージャに渡す 1 つから 8 つのパラメータを指定します。空パラメータは連続する 2 つの引用符("")を用いて指定します。これらのパラメータは,文字列値を入力した順に, P1,P2,..., P8 と 8 つまでのシンボルに割り当てられます。シンボルは,指定されたコマンド・プロシージャの内部だけで有効です。各パラメータは, 1 つまたは複数のスペースで区切ります。パラメータは,英数字または特殊文字を含む文字列値として指定することができますが,次の制約があります。
- コマンド・インタプリタは英字を大文字に変換し,各パラメータを区切るためにスペースを使用します。したがって,スペースや小文字を含むパラメータを渡すためには,パラメータを引用符 (" ") で囲む必要があります
- 最初のパラメータがスラッシュ文字 (/) から始まる場合には,パラメータを二重引用符で囲まなければなりません。
- リテラルとしての引用符,およびスペースを含むパラメータを渡すには,文字列全体を二重引用符で囲み,文字列の中に連続する 2 つの二重引用符を指定します。次の例を参照してください。
$ CALL SUB1 "Never say ""quit"""
制御が SUB1 に移るとき,パラメータ P1 には次の文字列が割り当てられます。
Never say "quit"
文字列に引用符が含まれており,スペースが含まれていない場合には,引用符はそのまま保存され,引用符で囲まれた英字は小文字のまま保存されます。次の例を参照してください。
$ CALL SUB2 abc"def"ghi
制御が SUB2 に移るとき,パラメータ P1 には次の文字列を割り当てられます。
ABCdefGHI
シンボルをパラメータとして使用する場合には,シンボル置換を実行するために,シンボルを一重引用符 (` ') で囲む必要があります。次の例を参照してください。
$ NAME = "JOHNSON" $ CALL INFO 'NAME'
一重引用符を使用すると,"JOHNSON" という値が "NAME" というシンボルと置き換えられます。したがって,"JOHNSON" というパラメータが P1 として,サブルーチン INFO に渡されます。
CALL コマンドは,コマンド・プロシージャ内でラベルを付けられたサブルーチンへ制御を移します。CALL コマンドは @ ( プロシージャ実行 ) コマンドに同様に,新しいプロシージャ・レベルを作成します。 CALL コマンドを使用する利点は,プロシージャを処理するためにファイルをオープンしたりクローズする必要がないことです。また,複数のプロシージャは複数のファイルではなく 1 つのファイル中にあるので,CALL コマンドを使用するとプロシージャの管理が簡単です。CALL コマンドを使用してサブルーチンに制御を移すと,新しいプロシージャ・レベルが作成され,指定された引数の値に P1 から P8 までのシンボルが割り当てられます。EXIT コマンドが実行されるまで,サブルーチンでの実行が続きます。EXIT コマンドが実行されると,制御は CALL コマンドの次のコマンド行に移ります。
プロシージャは,最大で 32 レベルまでネストさせることができます。この中には,コマンド・プロシージャの任意の組み合わせやサブルーチンの呼び出しを含めることができます。ネストしたサブルーチン構造内で定義されたローカル・シンボルやラベルは,@ コマンドでルーチンを起動した場合と同様に扱われます。つまり,ラベルはそれを定義したサブルーチン・レベルでのみ有効です。
より外側のレベルで定義されたローカル・シンボルは,それより内部のネスト・レベルのサブルーチンでは使用できます。つまり,ローカル・シンボルの読み込みはできますが書き込みはできません。より外側のサブルーチン・レベルでローカルなシンボルに値を割り当てると,現在のサブルーチン・レベルに新しいシンボルが作成されます。この時,より外側のプロシージャ・レベルのシンボルは変更されません。
SUBROUTINE および ENDSUBROUTINE コマンドは,サブルーチンの開始および終了を定義します。サブルーチンへのエントリ・ポイントを定義するラベルは,SUBROUTINE コマンドの直前または同一コマンド行上で指定しなければなりません。
1 つのサブルーチンには,1 つのエントリ・ポイントしか含めることができません。サブルーチンは,最初の実行可能文 SUBROUTINE コマンドで開始しなければなりません。プロシージャ内で EXIT コマンドを指定しないと, ENDSUBROUTINE コマンドが EXIT コマンドと同じ処置を行います。
SUBROUTINE コマンドは,実行されるコンテキストに依存する 2 つの異なる処理を行います。CALL コマンドの結果として SUBROUTINE コマンドを実行する場合は,新しいプロシージャ・レベルを開始し,CALL コマンドで指定したように P1 から P8 までのパラメータを定義し,サブルーチンの実行を開始します。 CALL コマンドを使用せずに起動されたプロシージャの実行フローで SUBROUTINE 動詞が検出された場合は,SUBROUTINE 以降のすべてのコマンドは,対応する ENDSUBROUTINE コマンドが検出されるコマンドまでスキップされます。
注意
SUBROUTINE および ENDSUBROUTINE コマンドは,3 文字以下に短縮することはできません。
/OUTPUT=ファイル指定
すべての出力を,指定したファイルまたは装置に書き込みます。省略時設定では,出力は現在の SYS$OUTPUT という論理装置に送られ,出力ファイル・タイプは .LIS です。システムからの応答とエラー・メッセージは,指定したファイルと SYS$COMMAND の両方に書き込まれます。 /OUTPUT を指定する場合には,修飾子は CALL コマンドのすぐあとに指定しなければなりません。出力ファイル指定には,ワイルド・カード文字は使用できません。コマンド・プロシージャからの出力先を変更するには, SYS$OUTPUT の定義を変更することもできます。コマンド・プロシージャの 1 行目として次のコマンドを指定すると,出力は指定したファイルに送られます。
$ DEFINE SYS$OUTPUT filespec
このプロシージャが終了すると,SYS$OUTPUT は元の等価文字列に戻されます。この方法を使うと,コマンド・プロシージャの実行時に /OUTPUT 修飾子を使用した場合と同じ結果になります。
| #1 |
|---|
$ $! CALL.COM $ $! Define subroutine SUB1 $! $ SUB1: SUBROUTINE . . . $ CALL SUB2 !Invoke SUB2 from within SUB1 . . . $ @FILE !Invoke another procedure command file . . . $ EXIT $ ENDSUBROUTINE !End of SUB1 definition $! $! Define subroutine SUB2 $! $ SUB2: SUBROUTINE . . . $ EXIT $ ENDSUBROUTINE !End of SUB2 definition $! $! Start of main routine. At this point, both SUB1 and SUB2 $! have been defined but none of the previous commands have $! been executed. $! $ START: $ CALL/OUTPUT=NAMES.LOG SUB1 "THIS IS P1" . . . $ CALL SUB2 "THIS IS P1" "THIS IS P2" . . . $ EXIT !Exit this command procedure file |
このコマンド・プロシージャは,ラベルの付いたサブルーチンへ制御を移すための CALL コマンドの使い方を示しています。この例は,サブルーチンあるいは別のコマンド・ファイルを,サブルーチンとして呼べることを示します。
CALL コマンドは,出力ファイルを NAMES.LOG として,サブルーチン SUB1 を起動します。また,他のユーザにファイルへの書き込みアクセスを認めます。サブルーチン SUB2 は SUB1 に呼ばれます。プロシージャは SUB2 を実行し,次にコマンド・プロシージャ FILE.COM を起動するために @ ( プロシージャ実行)コマンドを用います。
SUB1 のコマンドがすべて実行されると,メイン・プロシージャの CALL コマンドは次に SUB2 を呼び出します。SUB2 が実行されるまで,プロシージャは継続します。
RUN コマンドまたは $SCHDWK システム・サービスでスケジューリングされたウェイクアップ要求を含め,指定したプロセスに対するウェイクアップ要求を取り消します。次のいずれか 1 つが必要です。
- プロセスの所有権
- 所有権はないが同一グループ内のプロセスに対してスケジューリングされたウェイクアップ要求を取り消すための GROUP 特権
- システム上のすべてのプロセスに対してスケジューリングされたウェイクアップ要求を取り消すための WORLD 特権
CANCEL [[ノード名::]プロセス名]
ノード名::
指定したプロセスが実行中のノードの名前を指定します。現在のプロセスとは異なる OpenVMS Cluster システム上のノード名を指定することはできません。
プロセス名
ウェイクアップ要求を取り消したいプロセスの名前を指定します。プロセス名には,15 文字までの英数字を使用できます。ここで指定するプロセスは,現在のプロセスと同一グループ内のプロセスでなければなりません。
CANCEL コマンドは,指定したプロセスに対してスケジューリングされたウェイクアップ要求を取り消します。CANCEL コマンドは,指定したプロセスを削除することはありません。 CANCEL コマンドを発行した時に,そのプロセスでイメージを実行している場合は,イメージの実行終了後,そのプロセスは終了するのではなく,ハイバネートします。
ウェイクアップ要求が取り消されたハイバネートしているプロセスを削除するには, STOP コマンドを使用します。SHOW PROCESS コマンドで /SUBPROCESS 修飾子を指定すると,サブプロセスが削除されたかどうか確認できます。
ローカル・プロセス名は,リモート・プロセス名と似ています。そのため ATHENS::SMITH と指定すると,システムは,ノード ATHENS のプロセス SMITH をチェックする前に,ローカル・ノードでプロセス ATHENS::SMITH をチェックします。
/IDENTIFICATION=pid 修飾子を使用して,プロセス名を指定することもできます。 /IDENTIFICATION 修飾子とともに プロセス名 パラメータを使用すると,修飾子がパラメータを上書きします。 プロセス名 パラメータも /IDENTIFICATION 修飾子も指定しないと,CANCEL コマンドは現在のプロセス ( つまり CANCEL コマンドを発行するプロセス ) に対してスケジューリングされているウェイクアップ要求を取り消します。
/IDENTIFICATION=pid
プロセス識別番号 (PID) でプロセスを識別します。 PID を指定する時,先行の 0 は省略できます。
| #1 |
|---|
$ CANCEL CALENDAR |
この例で CANCEL コマンドは,プロセス名が CALENDAR であるプロセスに対するウェイクアップ要求を取り消します。 STOP コマンドで削除されるまで,CALENDAR プロセスはハイバネートします。
| #2 |
|---|
$ RUN/SCHEDULE=14:00 STATUS %RUN-S-PROC_ID, identification of created process is 0013012A . . . $ CANCEL/IDENTIFICATION=13012A |
この例で RUN コマンドは,イメージ STATUS を実行するプロセスを作成します。このプロセスはハイバネートし,14:00 に実行を開始するようスケジューリングされています。このプロセスが STATUS を実行する前に, CANCEL コマンドはウェイクアップ要求を取り消しています。
| #3 |
|---|
$ RUN/PROCESS_NAME=LIBRA/INTERVAL=1:00 LIBRA %RUN-S-PROC_ID, identification of created process is 00130027 . . . $ CANCEL LIBRA $ STOP LIBRA |
この例の RUN コマンドは,LIBRA という名前のサブプロセスを作成して,イメージ LIBRA.EXE を 1 時間に 1 回実行します。
次に CANCEL コマンドでウェイクアップ要求を取り消します。このプロセスは存在しつづけますが,STOP コマンドで削除するまで,ハイバネートします。
CHECKSUM コマンドは,OpenVMS ファイルに対するチェックサムを計算するためのユーティリティを実行します。チェックサムの結果は,DCL シンボル CHECKSUM$CHECKSUM で参照できます。
CHECKSUM ファイル指定
ファイル指定
チェックサムを計算するファイルの名前を指定します。ファイルの指定では,アスタリスク (*) とパーセント記号 (%) のワイルドカードが使用できます。
CHECKSUM ユーティリティは,OpenVMS のファイルに対して,ファイル,イメージ,オブジェクトのチェックサムを計算します。ファイル・チェックサムの場合は,使用するアルゴリズムによって,ファイルの内部レコード構造に従うかどうかが決まります。イメージまたはオブジェクトのチェックサムの場合は,ユーティリティは常にイメージまたはオブジェクトの構造に従います。修飾子 /FILE,/IMAGE,および /OBJECT により,どの種類のチェックサムを計算するかが決まります。修飾子ごとに省略時のファイル・タイプ (.DAT,.EXE,または .OBJ) が決まり,表示される情報量も決まります。省略時の設定である /FILE では,ファイルのレコード構造に従った XOR のファイル・チェックサムとなります。省略時のファイル・タイプは .DAT となり,SYS$OUTPUT には情報は何も出力されません。
ファイル・チェックサムの場合,CHECKSUM がどのアルゴリズムを使用して計算を実行するか指定できます。省略時の設定では,Alpha および VAX の XOR によるレコード・ベースのアルゴリズムが使用されます。代わりに,CRC アルゴリズムまたは MD5 アルゴリズムを選択することもでき,どちらもファイル全体の内容を使用してチェックサムが計算されます。 CRC アルゴリズムは,ELF-64 ファイルで使用されるアルゴリズムと同じで,PKZIP などの一般的な圧縮ツールでも使用されています (つまり,ZIP ファイル中のファイル・チェックサムは,CHECKSUM ユーティリティによって得られたチェックサムと比較することができます)。 MD5 アルゴリズムは MD5 ダイジェストであり,MD5.EXE や md5sum のような,パブリック・ドメインのツールを使用して取得できます。
イメージのチェックサムは,Alpha/VAX プラットフォームと I64 プラットフォームで異なります。オブジェクトのチェックサムは I64 プラットフォームだけで利用できます。プラットフォーム修飾子 /ALPHA,/I64,または /VAX を使用して,ネイティブでないイメージまたはオブジェクトのチェックサムを計算することができます。
ELF-64 イメージとオブジェクトのチェックサムでは, CHECKSUM はすべて CRC-32 アルゴリズムを使用します。 CRC は,AUTODIN II,Ethernet,FDDI CRC とも呼ばれ, VAX CRC 命令の一部として文書化されています。イメージまたはオブジェクトのチェックサムは, OpenVMS I64 のオブジェクト・ファイルとイメージ・ファイルで使用される ELF-64 のデータ構造に従います。これらのチェックサムでは,不変のデータだけが計算で使用されます。タイムスタンプやバージョンといった可変データは,計算から除外されます。これは,異なるコンパイルおよびリンク操作の結果を比較するためです。
Alpha および VAX のイメージでは,CHECKSUM は XOR アルゴリズムを使用します。イメージのチェックサムは Alpha および VAX のイメージ構造に従い,不変のデータだけが計算で使用されます。タイムスタンプなどの可変データは計算から除外されます。これは,異なるリンク操作の結果を比較するためです。 Alpha システムと VAX システムでは,オブジェクトの不変データに基づいてオブジェクト・ファイルのチェックサムを計算することはできません。
/ALGORITHM=オプション
/ALGORITHM=XOR (省略時の設定)
ファイル・チェックサムで使用するアルゴリズムを選択します。省略時の設定はレコード内のデータに対する XOR アルゴリズムで, OpenVMS Alpha システムおよび VAX システムの以前の Checksum ユーティリティで使用されていたものと同じです。オプションには以下のものがあります。
- CRC --- ファイル内の全バイトに対する CRC-32 アルゴリズム (レコード構造があっても無視される)。このアルゴリズムは,AUTODIN II,Ethernet,FDDI CRC とも呼ばれる。
- MD5 --- Ronald L. Rivest により公開された MD5 ダイジェスト (RFC 1321) で,ファイル内の全バイトが対象となる (レコード構造があっても無視される)。
- XOR --- ファイルのレコード構造に従った,全データに対する XOR アルゴリズム。
/ALPHA
Alpha タイプのチェックサムを計算します。 I64 システムで /IMAGE 修飾子とともに指定した場合にだけ有効です (つまり,I64 システム上で Alpha イメージのチェックサムを計算する場合です)。この修飾子は Alpha プラットフォームでは省略時の設定であり, VAX プラットフォームでは無効です。/FILE (省略時の設定)
ファイル・チェックサムを計算します。省略時の設定では,XOR アルゴリズム (/ALGORITHM=XOR) を使用してチェックサムが計算されます。 /FILE 修飾子では,省略時のファイル・タイプは .DAT となります。省略時の設定では,符号なし 10 進数のチェックサム値が DCL シンボル CHECKSUM$CHECKSUM に格納され,画面には出力されません。 /SHOW=DATA を指定すると,指定した入力ファイルの完全なファイル名と,符号なし 10 進数値のファイル・チェックサムが出力されます。
プラットフォーム修飾子 /ALPHA,/I64,または /VAX は,ファイル・チェックサムの結果には影響しません。しかし,/ALPHA または /VAX を指定すると, /SHOW 修飾子は指定できません。これは,Alpha システムと VAX システムの元の Checksum ユーティリティでは,これらの修飾子が使用できなかったためです。
/I64
I64 タイプのチェックサムを計算します。 Alpha システム上で /IMAGE または /OBJECT とともに使用した場合にだけ有用です (つまり,Alpha システム上で I64 イメージまたはオブジェクトのチェックサムを計算する場合です)。 /I64 修飾子は,I64 プラットフォームでは省略時の設定であり, VAX プラットフォームでは無効です。/IMAGE
イメージの全バイトのチェックサムを計算します。イメージ・バイトだけをチェックサムに含めるため,イメージ構造に従って計算されます。リンカのバージョンやリンク日付といった可変データは除外されます。
前へ 次へ 目次 索引