[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]

9 ファイルとディレクトリの操作

本章では,ファイルの保護や操作,そしてデータ転送に関連する項目と作業について説明します。

本章の内容

本章では,次の作業について説明します。

作業 参照箇所
Extended File Specifications機能とは 第9.1節
ODS-5ボリュームに対するアクセスの制御 第9.2節
ファイル情報の取得 第9.4節
ディスク・ファイルの保護 第9.5.3 項
ディスク・ディレクトリの保護 第9.5.4 項
磁気テープ・ファイルの保護 第9.5.5 項
ディスク・ファイルへのアクセス 第9.6節
テープ・ファイルへのアクセス 第9.7節
ファイルのコピーおよび転送 第9.8節

さらに,次の項目について説明します。

項目 参照箇所
Extended File Specifications機能 第9.1節
DCLコマンドとファイル 第9.3 節
ファイルの保護 第9.5.1項
テープ・ファイル名 第9.7.1項

9.1 Extended File Specifications機能とは

OpenVMSバージョン7.2から,Extended File Specificationsが,OpenVMS にこれまであったファイルの命名に関する多くの制限を取り払い,ここで説明するファイル命名機能を完全にサポートするようになりました。 さらにこの機能によりCompaq Advanced Server for OpenVMS 7.2 環境においてOpenVMS とWindows NTの双方にまたがる一貫性のあるファイル処理を提供できるようになります。

機能 説明
新オン・ ディスク構造 Extended File Specificationsは最新のボリューム・ オン・ディスク構造(ODS):レベル5 (ODS-5)をサポートする。 このディスク構造は拡張ファイル名を使用したファイルの作成と格納の基準を提示する。
追加文字セットのサポート ファイル名の命名に使用できる広範な文字セットをOpenVMS 上で使用することができる。Extended File Specifications は8-bit ISO Latin-1文字16-bit Unicode (UCS-2)文字セットを提供する。
拡張ファイル命名 ファイル名は旧来の<39 文字>.<39文字>という制限を越え,最大236バイトまで。
大文字小文字の区別の保存 Extended File Specificationsは,ODS-5属性で作成されたファイル指定の大文字小文字の区別を保存する。
深いディレクトリ階層 深いディレクトリ階層のサポートのため最大512 文字までディレクトリ指定が拡張された。

それぞれの機能について詳しくは,『OpenVMS Extended File Specificationsの手引き』を参照してください。

9.1.1 Extended File Specifications機能の使用

OpenVMSバージョン7.2から,RMSでODS-2とODS-5ボリュームの両方で新しいRMS API 拡張の他に,8レベル以上の階層のディレクトリを省略値で使用できるようになりました。 ただし,拡張ファイル名を作成できるのは,ODS-5 ボリューム上だけです。第8.3.3項第8.5.5.1項では, それぞれ,新しいODS-5ボリュームの作成方法と,ODS-2 ボリュームのODS-5ボリュームへの変換方法を説明しています。

一旦ODS-5に変更すると,プログラムは拡張ファイル名を作成,あるいは読むことができるようになります。 ただし,省略時の設定では,DCL (およびアプリケーションのいくつか) はすべての拡張ファイル名をサポートしているわけではありません。  DCLは,コマンド行プロンプトに対して小文字で入力されたファイル名を大文字に変更します。

Extended File Specifications解析機能の有効化

DCLがすべての拡張ファイル名を受け付られるように,Extended File Specificationsのファイル名解析機能を有効にしておく必要があります。 OpenVMS Alphaシステムでは,次のDCLコマンドを入力してプロセス単位でODS-5 ファイル名を受け付けさせることができます。

     $ SET PROCESS/PARSE_STYLE=EXTENDED

ユーザがコマンドを入力すると,DCLは次のようなファイル名を受け付けるようになります。

     $ CREATE MY^[FILE

解析スタイルについて詳しくは, 『OpenVMS DCLディクショナリ』を参照してください。 『OpenVMS Record Management Services Reference Manual』には,RMSの省略時のExtended File Specifications機能について追加情報があります。

9.1.2 Extended File Specificationsに対するユーザの期待の設定

ODS-2とODS-5ファイル名の違いについて,システム管理者があらかじめ説明しておくと, ユーザはExtended File Specificationsを理解しやすくなるでしょう。 ファイル名の違いは,ODS-2からODS-5方式に変更した場合にとくに顕著に現れます。

使用法に関してのガイド書を配布しておくとユーザに便利です。ガイド書の内容は, 次のカテゴリにわけて作成します。

9.1.2.1 新しいExtended File Specificationsの特徴

ここでは,新しいExtended File Specificationsの特徴に関して,ユーザにあまり知られていない項目について説明します。

ボリューム構造に注意

ODS-5ファイルをODS-5ボリューム上に配置するためには,ディスクがODS-2 ボリュームなのかODS-5ボリュームなのかを確認する必要があります。

次のようなコマンドを入力すると,ボリュームのタイプが表示されます。

     $ SHOW DEVICE DKA500:/FULL

       Disk AABOUT$DKA500:, device type DZ25 Disk, is online, allocated, deallocate
       on dismount, mounted, file-oriented device, shareable.

         Error count                    0    Operations completed 155
         .
         .
         .
       Volume Status:  ODS-5, subject to mount verification, file high-water
       marking, write-back caching enabled.

     $ SHOW DEVICE DKA200:/FULL

       Disk AABOUT$DSA200:, device type RZ25 Disk, is online, allocated, deallocate
       on dismount, mounted, file-oriented device, shareable.

         Error count                    0    Operations completed 232
         .
         .
         .

       Volume Status:  ODS-2, subject to mount verification, file high-water
       marking, write-back caching enabled.

それぞれのコマンドを実行すると,Volume Status:と表示された項目がありますが, これはボリュームが ODS-5かODS-2かを表示しています。

ODS-2ボリューム上では拡張ファイル名を使用しない

ODS-2ボリューム上で ODS-5拡張ファイル名を使用したファイル名を持つファイルは作成できません。

次の例のDKA200:はODS-2ボリュームで,解析スタイルはEXTENDEDです。このためRMS はエラー・メッセージを返します。

     $ SET DEFAULT DKA200:[TEST]
     $ CREATE x.x.x.x
     %CREATE-E-OPENOUT, error opening DKA200:[TEST]X^.X^.X.X; as output
     -RMS-E-CRE, ACP file create failed
     -SYSTEM-W-BADFILEVER, bad file version number

大文字小文字の区別は拡張ファイル名の最初の登場時に決定

ODS-5ボリュームでは,1つのファイルのすべてのバージョンについて, 大文字小文字の区別は統一されます。大小文字の区別は最初にファイルが作成された際のファイル名で格納されます。

次の例で,このディスクはODS-5です。

     $ SET DEFAULT DKA500:[TEST]
     $ SET PROCESS /PARSE_STYLE=EXTENDED
     $ CREATE myfile.txt
     <Ctrl/Z>

     $ CREATE MYFILE.TXT
     <Ctrl/Z>

     $ DIRECTORY

     Directory DKA500:[TEST]
     myfile.txt;2        myfile.txt;1

大文字小文字の区別の保存と,Extended File Specificationsでの無視に注意

ODS-5ディスクは,最初に入力された形でファイル名を格納するが,しかしファイルを検索する際にはこの大文字小文字の区別を無視するという点に注意する必要があります。 同様に,比較をする際には例えば,DCLコマンド・ プロシージャ内でDCLの文字列操作機能である.EQS.F$LOCATE を使用する場合に注意を要します。

次の例は,DCLによってファイル名の大文字小文字の区別を無視した検索が行われたもので, 非常に重要な例です。このプログラムでは,大文字小文字を区別する検索を指示する引数は指定しておらず, 逆に大文字小文字の区別を無視する検索を指示する引数を指定していることに注意してください。

このプログラムはF$SEARCH を使ってファイル・タイプ .TXT を持つすべてのファイルを検索しようとしています。RMS は(および,そのためにF$SEARCH も)大文字小文字の区別を無視した検索を行うので, F$SEARCH.txt をファイル・タイプに持つファイルも同様に検索してしまいます。 そこでF$SEARCH は,F$LOCATE を使い,ファイル名TEST を持つファイルを検索します。 F$LOCATE は大文字小文字を区別した比較を行うため, 最初にファイル名の文字列すべてを大文字に変換しない限りこの検索は意図通りに行なわれません。

     $ case_blind = 0
     $ if p1 .nes. "" then case_blind = 1 【1】
     $loop:
     $  file = f$search("*.TXT;") 【2】
     $  if file .eqs. "" then goto not_found
     $  write sys$output "Search returns " + file
     $  if case_blind .eq. 1 then file = f$edit(file,"UPCASE") 【3】
     $  if (f$locate("TEST",file) .ne. f$length(file)) then goto found 【4】
     $  goto loop
     $found:
     $   write sys$output "Found a file matching TEST"
     $   exit
     $not_found:
     $   write sys$output "Did not find file matching TEST"
     $   exit

【1】
引数が存在する場合(かつ,大文字小文字の区別を無視した比較ができる場合) ,case_blind を1に設定します。
【2】
ファイル名が.TXT または .txt で終わるものを検索します(F$SEARCH は大文字小文字の区別をしないため)。
【3】
ステップ1で大文字小文字の区別を無視した比較が選択された場合, 検索時に大文字小文字の区別を無視するため, ファイル名の文字をすべて大文字に変換します。
【4】
F$LOCATE がファイルを発見した場合, found: に進みます。

次の例は,プログラムを実行した際の出力です。

     $ @test
     Search returns DKA300:[FISHER]test.txt;1
     Did not find file matching TEST
     $ @test case-blind
     Search returns DKA300:[FISHER]test.txt;1

     Found a file matching TEST

CONDENCEDファイル名で別個にリストされる短縮ディレクトリ名と完全ディレクトリ名

一部のシステム・ユーティリティとDCLコマンド,たとえばDIRECTORYコマンドでは, ファイル名をどのように表示するかを切り替えるスイッチを持っています。

次の例は1つのCONDENSEDディレクトリ名を示します。DIRECTORYコマンドは,DID で短縮されたディレクトリ名と短縮されていないディレクトリ名を違うものとみなすので, 短縮が発生したときには,別個にヘッダを生成します。

     $ DIR/STYLE=CONDENSED

     Directory DKA300:[DEEPER.aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii._ten.aaaa.
     bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii._ten.aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.
     hhhh.iiii._ten.aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii._ten]【1】

     aaaa.txt;1

     Total of 1 file.

     Directory DKA300:[528,7036,0]【2】

     xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.txt;1

     Total of 1 file.

     Grand total of 2 directories, 2 files.【3】
【1】
CONDENSEDスタイルで,ディレクトリ名とファイル名の組み合せが255 バイトを越えない場合,ディレクトリ名はディレクトリID (DID)に短縮されません。
【2】
CONDENSEDスタイルで,ディレクトリ名とファイル名の組み合せが255 バイトを越えた場合,ディレクトリ名はディレクトリID (DID) に短縮されます。
【3】
DIRECTORYコマンドを実行すると, 完全なディレクトリ名と短縮されたディレクトリ名の両方が1つのディレクトリに対して表示されます。DIRECTORY コマンドはこれを別々の2つのディレクトリのように扱って表示します。

DIRECTORYコマンドについて詳しくは,『OpenVMS DCLディクショナリ』を参照してください。

9.1.2.2 ODS-2とODS-5の混在使用

この節では,クラスタ内で ODS-2とODS-5を同時に使用する場合の注意点について説明します。

混在ボリューム環境における従来のファイル名の使用

ODS-2とODS-5の両方のボリューム上でのODS-2とODS-5ファイル名の非互換の問題を避けるため, また 以前のバージョンのOpenVMSとの下位互換性を保証するため, 従来のODS-2ファイル名だけを使用してください。

解析スタイルによるエラー・メッセージの相違

解析スタイルの違いによってユーザに表示されるエラーが変化する場合があります。 従来DCLレベルで処理されてきた構文エラーは,例えば解析スタイルがEXTENDED の場合,現在ではRMSとXQPに送られます。この結果,ファイルの構文エラーの発生に対してユーザが受け取るメッセージは解析スタイルとボリューム構造によって多少異なることがあります。

次の例はエラー・メッセージが異なる場合の例です。

暗黙のファイル名出力に注意

ユーティリティにファイルを作成させる場合,処理されるファイル名から暗黙に設定される省略時の設定に注意する必要があります。ODS-2 ボリュームに拡張された名前を持つファイルを誤って置かないよう, どこにファイルを置くのかは意識していてください。

次の例は,ユーザが意図していない場所にファイルを置いてしまった例です。

     $ SHOW DEFAULT
       DKA200:[DOREO]
     $ DUMP /OUTPUT DKA500:[DOREO]This^_is^_a^_file.Dat
     %DUMP-E-OPENOUT, error opening DKA200:[DOREO]THIS^_IS^_A^_FILE.DMP;as output
     -RMS-E-CRE, ACP file create failed
     -SYSTEM-W-BADFILENAME, bad file name syntax

/OUTPUT修飾子で指定された出力ファイルは,省略時の設定では,省略時ディレクトリ作成される入力ファイルと同じファイル名でファイル・ タイプ.DMP のファイルになります。入力ファイル指定がODS-5ボリュームにある拡張名のとき,.DMP ファイルは従来の名前を持つ必要があります。その理由は, 出力ファイルがODS-2ボリュームに書き込まれる予定だからです。 その結果として,エラーが発生します。

9.1.2.3 アーキテクチャ関連の注意

ここではシステム・アーキテクチャに関連するExtended File Specificationsの問題について説明します。

拡張ファイル名がVAXシステムから見えない

VAXシステムにログインした場合,ODS-5ボリュームをVAXにマウントすることはできるがODS-5 拡張ファイル名は見えません。これに代わって擬似名が表示されます:

たとえば,AlphaおよびVAXシステムで同じディレクトリを表示した場合, 次のようになります:

さらに,VAX上でのディレクトリの深さは8 (または,ルート論理名により16) に制限されます。

VAXシステム上でのODS-5物理バックアップ

OpenVMS VAXシステムでは,BACKUPはボリュームをバックアップする場合,/PHYSICAL 修飾子を指定した場合にのみ,ODS-5ボリュームをサポートします。BACKUP /PHYSICAL コマンドによりBACKUPはブロックからブロックへの物理的バックアップを行い, ディスクの構造的内容を無視します。

AlphaシステムではBACKUP /IMAGEまたはBACKUP /PHYSICALコマンドが使用できます。

9.2 ODS-5ボリュームに対するアクセスの制御

システム管理者は,次の制限のうち,いずれか片方または両方の強制を選択することもできます。

システム管理者は,通常のOpenVMSに一任した制御を使用して,これらの制限事項のどちらをも強制することができます。 詳細については, 『OpenVMS Guide to System Security』を参照してください。

これ以降の項では,強制できる制限事項の例を示します。

9.2.1 VAXユーザに対するODS-5ボリュームへのアクセスの禁止

VAXノードにあるODS-5ボリュームへのユーザからのアクセスを禁止するには, 次の手順を行います。

  1. 次のように,識別子(例: VAX_NODE)を定義して,OpenVMS VAX ノードを使っているユーザを特定する。
         $ RUN SYS$SYSTEM:AUTHORIZE
    
         UAF> ADD /IDENTIFIER VAX_NODE
    
         %UAF-I-RDBADDMSG, identifier VAX_NODE value %X80010037 added to rights database
    

  2. それぞれのVAXノードで,システム・ライト・リストにVAX_ NODEを追加する。次の例を参照。
         $ SET RIGHTS_LIST /ENABLE /SYSTEM VAX_NODE
    

    このコマンドの/ENABLE修飾子で,システム・ライト・リストにVAX_ NODEが追加される。

    また,このコマンドをSYSTARTUP_VMS.COMコマンド・プロシージャにも追加する。

  3. VAXノード上のすべての人に対してODS-5ボリュームへのアクセス権獲得を防止するために, 次のように,VAX_NODE識別子の保持者からのアクセスを拒否するボリュームに対して, アクセス制御エントリ(ACE) を指定する。
         $ SET SECURITY /CLASS=VOLUME ODS5_DISK /ACL=(ID=VAX_NODE,ACCESS=NONE)
    

9.2.2 テストされていないアプリケーションに対するODS-5 ボリュームへのアクセスの禁止

ODS-5ボリュームへのテストされていないアプリケーションからのアクセスを禁止するには, 次の手順を行います。

  1. 次のように,識別子(例: ODS5_UNSAFE)を定義して,ODS-5ボリュームにアクセスさせたくないアプリケーションを特定する。
         UAF> ADD /IDENTIFIER ODS5_UNSAFE /ATTR=SUBSYSTEM
    
         %UAF-I-RDBADDMSG, identifier ODS5_UNSAFE value %X80010039 added to rights database
    

  2. 保護されたサブシステムACEを ODS5_UNSAFE識別子とともにアプリケーションに付加する。
         $ SET SECURITY /CLASS=FILE SYS$SYSTEM:APPLICATION.EXE -
         _$ /ACL=(SUBSYSTEM,ID=ODS5_UNSAFE)
    

  3. 各ODS-5ボリュームに対して,ODS5_UNSAFE識別子の保持者からのODS-5 ボリュームへのアクセスを拒否するACEを次のように付加する。
         $ SET SECURITY /CLASS=VOLUME ODS5_DISK/ ACL=(ID=ODS5_UNSAFE,ACCESS=NONE)
    

オプションとして,前述の最後の手順で,テストされていないアプリケーションに対して熟練したユーザがアクセスできるように, 次の手順を行うことで, この制限を無効にすることもできます。

  1. もう1つ別の識別子を作成する(例: ODS5_UNTRAINED)。
         UAF> ADD /IDENTIFIER ODS5_UNTRAINED
    
         %UAF-I-RDBADDMSG, identifier ODS5_UNTRAINED value %X80010038 added to rights database
    

  2. この識別子を次のようにすべてのユーザに割り当てる。
         UAF> GRANT/IDENTIFIER ODS5_UNTRAINED *
    
         %UAF-I-GRANTMSG, identifier ODS5_UNTRAINED granted to *
    

  3. 手順3の代わりに,ODS5_UNTRAINED識別子の保持者に対してアクセスを拒否するボリュームに, アクセス制御エントリ(ACE)を指定する。 次の例を参照。
         $ SET SECURITY /CLASS=VOLUME ODS5_DISK/ -
         _$ ACL=(ID=ODS5_UNSAFE+ODS5_UNTRAINED,ACCESS=NONE)
    

    このコマンドによって,ボリュームに対してODS5_UNSAFEアプリケーションでODS5_UNTRAINED ユーザがアクセスするのが防止される。

  4. ODS-5ボリュームにあるすべてのアプリケーションを使用させたいユーザに対しては, 次のように個別にこの識別子を削除する。
         UAF> REVOKE/IDENTIFIER ODS5_UNTRAINED SHEILA_USER
    
         %UAF-I-REVOKEMSG, identifier ODS5_UNTRAINED revoked from SHEILA_USER
    

上記の手順を完了すると,次のようになります。

9.3 DCLコマンドとファイル

次の操作をはじめとして,ファイルに対する多くの操作は,DCL (Digital Command Language)を使用して行います。

操作 DCLコマンド
装置の属性や保護属性などのディスクおよび磁気テープ・ファイル情報の読み込みとターミナル画面への表示 SHOW (表 9-1参照)
保護やUIC 情報などのディスク・ファイル属性の変更 SET (表 9-3 参照)
ディレクトリ内容の表示 DIRECTORY
ファイル内容の表示 TYPE
ディスクおよび磁気テープ・ボリューム間のファイルのコピー COPY

[1]従来の解析スタイルでも,DCLは一部でODS-5ファイル名を受け付けることができた。 例えば,DCLはx.x.xという形式を受け付けることができた。

[2]一部のアプリケーションでは,アプリケーションのプロンプトに対してユーザがタイプしたファイル名を読むために内部的にDCL を使用している。

大部分のDCLコマンドは,装置がファイル構造を持つことを前提に動作します。 なお,この前提を必要としないコマンドについては,『OpenVMS DCLディクショナリ』を参照してください。

何回も繰り返すようなファイル操作は,DCLを利用する他に,プログラムを作成することによっても行うことができます。 使用する言語は, OpenVMSオペレーティング・システムのサポートする言語であればどの言語でも使用できます。

ファイル内の個々のレコードを操作したい,すなわち,レコード・レベルでファイルにアクセスしたい場合は,OpenVMS のレコード管理サービス(RMS) 機能を内蔵したプログラムを作成してください。レコード・ レベルでのファイルの操作に使用するRMS機能の例については,『OpenVMS Record Management Services Reference Manual』を参照してください。

9.4 ファイル情報の取得

DCLのDIRECTORYコマンドを使用すると,ディレクトリに含まれるディスクと磁気テープ・ ファイル情報を得ることができます。

DIRECTORY [ファイル指定[,...]]

DIRECTORYコマンドでコマンド修飾子を使用すると,ディレクトリに含まれるファイル名のリスト以外の情報を得ることもできます。DIRECTORY コマンドなどのDCLコマンドで使用可能な修飾子についての詳細は,『OpenVMS DCL ディクショナリ』を参照してください。

この後の例では,論理名DISK$DOCUMENTが指すディスクにある,[MALCOLM] ディレクトリからの情報の読み込み例を3つ紹介します。

  1.      $ DIRECTORY AVERAGE.*
    
         Directory DISK$DOCUMENT:[MALCOLM]
    
         AVERAGE.EXE;6      AVERAGE.FOR;6      AVERAGE.LIS;4     AVERAGE.OBJ;12
    
         Total of 4 files.
    

    この例では,AVERAGEファイルのすべてのファイル・タイプと,各ファイルのバージョン番号のリストを表示している。 ここでは各ファイルについてバージョンが1 つしか示されていないが,複数のバージョンがあれば, それらも示される。

  2.      $ DIRECTORY/SIZE/DATE/VERSIONS=1/PROTECTION  AVERAGE
    
         Directory DISK$DOCUMENT:[MALCOLM]
    
         AVERAGE.EXE;6       6        10-APR-1998 15:43 (RWED,RWED,RWED,RE)
         AVERAGE.FOR;6       2         2-APR-1998 10:29 (RWED,RWED,RWED,RE)
         AVERAGE.LIS;4       5         9-APR-1998 16:27 (RWED,RWED,RWED,RE)
         AVERAGE.OBJ;6       2         9-APR-1998 16:27 (RWED,RWED,RWED,RE)
    
         Total of 4 files, 15 blocks.
    

    この例でもまた,AVERAGEファイルのすべてのファイル・タイプと, 各ファイルのバージョン番号のリストを表示している。/SIZE修飾子は, 各ファイルの大きさを使用ブロック数で示すようにという指示である。/DATE 修飾子は,ファイルのバージョンの作成日の表示を指示し,VERSIONS=1 修飾子は,表示するファイルのバージョン数を 1つ(最新バージョン) に制限する。また/PROTECTION修飾子は, ファイルに対する保護設定内容を表示するようにという指示である。

  3.      $ DIRECTORY/FULL/VERSIONS=1 [MALCOLM...]AVERAGE.EXE
    
         Directory DISK$DOCUMENT:[MALCOLM]
    
         AVERAGE.EXE;6                 File ID:  (4098,149,0)
         Size:           36/36         Owner:    [DOCUMENTATION,MALCOLM]
         Created:  27-MAY-1998 12:22:26.30
         Revised:  27-MAY-1998 12:22:51.35 (2)
         Expires:   <None specified>
         Backup:    3-JUN-1998 22:03.09
         Effective: <None specified>
         Recording: <None specified>
         File organization:  Sequential
         Shelved state:      Online
         File attributes:    Allocation: 36, Extend: 36, Global buffer count: 0
                             No version limit
         Record format:      Variable length, maximum 255 bytes
         Record attributes:  Carriage return carriage control
         Journaling enabled: None
         File protection:    System:RWED, Owner:RWED, Group:RE, World:
         Access Cntrl List:  None
    
         Total of 1 file, 36/36 blocks.
    
         Directory DISK$DOCUMENT:[MALCOLM.TEST]
    
         AVERAGE.EXE;1                 File ID:  (7714,29,0)
         Size:           36/36         Owner:    [DOCUMENTATION,MALCOLM]
         Created:  15-APR-1998 10:12
         Revised:  15-APR-1998 10:12 (1)
         Expires:   <None specified>
         Backup:   15-APR-1998 22:41
         Effective: <None specified>
         Recording: <None specified>
         File organization:  Sequential
         Shelved state:      Shelved
         File attributes:    Allocation: 36, Extend: 36, Global buffer count: 0
                             No version limit
         Record format:      Variable length, maximum 255 bytes
         Record attributes:  Carriage return carriage control
         Journaling Enabled : None
         File protection:    System:RWED, Owner:RWED, Group:RE, World:
         Access Cntrl List:  None
    
         Total of 1 file, 36/36 blocks.
         Grand total of 2 directories, 2 files, 72/72 blocks.
    

    この例では,最上位のディレクトリ[MALCOLM]とその下のサブディレクトリから,AVERAGE.EXE の1つのバージョンについて内容を詳細に表示している。

9.5 ファイルの保護

以降の節では,ファイルの保護について説明します。

作業 参照箇所
ファイルの所有権と保護情報の表示 第9.5.2項
ディスク・ ファイルの保護 第9.5.3項
ディスク・ディレクトリの保護 第9.5.4 項
磁気テープ・ファイルの保護 第9.5.5 項

9.5.1 ファイルの保護

次のレベルでディスクや磁気テープ媒体上のデータを保護することができます。

保護レベル 説明
装置レベル 装置保護属性については,第8章および『OpenVMS DCL ディクショナリ』の,DCLコマンドINITIALIZE ,MOUNT,SET DEVICES,SET SECURITY/PROTECTION,およびSET VOLUMEの説明を参照。周辺装置についての詳細は,第7章を参照。
ボリューム・レベル ディスクとテープのボリューム単位の保護。詳細は, それぞれ次の節を参照。

ディスク・ボリュームの保護 第8.4.1項
テープ・ボリュームの保護 第8.4.2項

ファイル・レベル ディスク・ ファイルとディレクトリ・ファイル単位の保護。

詳細は,それぞれ次の節を参照。

個別ディスク・ファイル 第9.5.3項
ディスク・ ボリュームのディレクトリ・ファイル 第9.5.4項

次の方法でディスクやテープ・ボリューム上のデータを保護することができます。

保護タイプ 参照箇所
UICに基づく保護コード 第11章
ACL (アクセス制御リスト) 第11章
ISO 9660形式の媒体保護 第8.4.2項
ANSI規格のアクセス保護(磁気テープのみ) 第8.4.2項

たいていの場合,ファイルの保護は外部から見えませんが,OpenVMSには, ファイルの保護設定を変更するためのツールが用意されています。次のような場合に, ファイルの保護モードを設定したり,ファイルのACLを変更したりすることができます。

9.5.2 ファイルの所有権と保護情報の表示

表 9-1に示すコマンドと修飾子を使い, ファイルの所有権と保護情報を表示することができます。

表 9-1 所有権と保護情報を表示するDCLコマンド

コマンド 表示情報
DIRECTORY/ACL ファイル指定 ファイルのACL
DIRECTORY/OWNER_UIC ファイル指定 ファイルの所有者のUIC
DIRECTORY/PROTECTION ファイル指定 ファイルのUIC に基づく保護情報
DIRECTORY /SECURITY 上記のすべての情報
DIRECTORY/FULL ファイル指定 上記のすべての情報と他の非機密保護情報
SHOW DEVICES/FULL 装置名 装置のUICと保護情報
SHOW PROCESS プロセスのUIC
SHOW PROTECTION 省略時のファイル保護情報
SHOW SECURITY 上記のすべての情報

テープ・ボリュームはディレクトリ構造を持ちませんが,DIRECTORYコマンドを使用して, テープ・ボリューム上のファイルを検索することができます。 第9.7節では, テープ・ファイルにアクセスして,読み込みまたは書き込みを行う方法と, テープに対するDIRECTORYコマンドの使用法を説明します。

DCLのSHOW PROTECTIONコマンドは,プロセスに対する現在の省略時の保護情報を表示します。 ターミナル・セッション中に作成されるファイルやバッチ・ ジョブには,この省略時の保護が適用されるため,ディレクトリや既存のバージョンの省略時の保護を適用することはできません。


注意
SHOW PROTECTIONコマンドを使用して磁気テープの省略時の保護情報を表示するためには, 磁気テープを初期化するINITIALIZE コマンドに/PROTECTION修飾子が指定されている必要があります。 この指定が行われていない場合,保護コードが磁気テープ・ ボリュームに書き込まれることはありません。磁気テープ・ボリュームの初期化については, 第8.3節を参照してください。

次に,SHOW PROTECTIONコマンドを使用したディスク・ファイルの保護属性の表示例を紹介します。

     $ SHOW PROTECTION
     SYSTEM=RWED, OWNER=RWED, GROUP=RE, WORLD=NO ACCESS

現在の省略時の保護属性の表示を要求するSHOW PROTECTIONコマンドの例です。

9.5.3 ディスク・ファイルの保護

ディスク上の各ファイルには,ディスク・ボリュームそのものに適用される保護とは明確に異なる, 独自の保護コードを設定することができます。 ディスク・ボリューム上のファイルに設定されるアクセス権を表 9-2 に示します。

表 9-2 ディスク・ファイルの保護とアクセス権

アクセス権 与えられる権利
読み込み ディスク・ファイルの読み込み, プリント,コピーを行う権利。このアクセス権には,ディスク上の指定したファイルまたはファイルのグループへの実行アクセス権が自動的に含まれる。
書き込み ファイルへの書き込みおよびファイルの内容を変更する権利。 しかし,ファイルを削除することはできない。 書き込みアクセス権によって,ファイルの内容を表すファイル属性を変更することができる。
実行 実行形式のプログラム・イメージまたは DCL コマンド・プロシージャを含むファイルの実行アクセス権利。
削除 ファイルを削除する権利。 ファイルを削除するには,ファイルに対して削除アクセス権があり, ファイルを含むディレクトリに対して書き込みアクセス権が必要である。
制御 保護コードおよびACL を含むファイルの属性を変更する権利。ファイルの所有者の変更には, 特殊な制限が適用される。

ファイルの作成時に保護コードが設定されなかった場合,システムは省略時の保護コードを割り当てます。 ただし,ファイルのバージョンがすでに存在する場合は, 前のバージョンの保護コードが適用されます。

新規ファイルの場合,システムは次の2つの方法で適用する保護コードを決定します。

ディスク・ボリュームの各ファイルの保護属性が同じである必要はありません。SECURITY/PROTECTION などのファイル操作コマンドを使って,ファイルごとに異なる保護属性を設定することができます。


注意
ファイルを完全に保護するためには, ファイルと,それが含まれるディレクトリの両方を保護する必要があります。 すなわち,権限を持たないユーザがファイルにアクセスしないようにしたい場合は, ファイルが含まれるディレクトリとファイルそのものに適切な保護設定をしてください。 ディレクトリの保護方法については, 第9.5.4項で詳しく説明します。

以降の節では,次の作業について説明します。

作業 参照箇所
省略時のディスク・ファイル保護 第9.5.3.1項
ディスク・ファイル保護の明示設定 第9.5.3.2項
ディスク・ファイル保護属性の変更 第9.5.3.3項

9.5.3.1 省略時のディスク・ファイル保護

新たに作成されたファイルは,省略時のUICに基づく保護と,親ディレクトリの省略時のACE ( アクセス制御エントリ)の保護(親ディレクトリにそうしたエントリがある場合) を受けます。また,既存のファイルに新しいバージョンが作成された場合は, 前のバージョンのUICに基づく保護とACL が設定されます。

RENAME/INHERITコマンドを使用しないかぎり,ファイル名を変更しても保護属性が変わることはありません。

省略時のUICに基づく保護の変更

オペレーティング・システムは,各プロセスに省略時のUICに基づく保護として(S:RWED,O:RWED,G:RE,W) を割り当てます。このプロセスで作成されたファイルに適用されるこの省略時の保護を変更する場合は, 次の形式のSET PROTECTION/DEFAULT コマンドを使用します。

SET PROTECTION[=(コード)]/DEFAULT

コード 指定したファイルに適用される保護属性を定義する。 このコードを指定しなかった場合は,アクセスは現行の省略時の保護属性に設定される。

たとえば,ログイン・コマンド・プロシージャに次のコマンドを登録しておくと, それ以降に作成されるすべてのファイルに対する読み込みおよび実行アクセス権がすべてのプロセスに付与されます。

     $ SET PROTECTION = (S:RWED,O:RWED,G:RE,W:RE)/DEFAULT

このコマンドを実行するためには,ログイン・コマンド・プロシージャを実行する必要があります。

9.5.3.2 ディスク・ファイル保護の明示設定

次に示す形式で/PROTECTION修飾子を使用すると,新しいファイルに対するUIC に基づく保護を明示的に設定することができます。この修飾子が使用可能なコマンドは,BACKUP ,COPY,RENAME,CREATEです。

     $ CREATE MAST12.TXT/PROTECTION=(S:RWED,O:RWED,G,W)

また,新たに作成したファイルに対してACLを作成した場合は,必要なだけACL にACEを登録することができます。ACLに指定した保護は,ファイルのUIC に基づく保護に優先します。

次の例では,保護コードのチェック例と指定例をいくつか紹介します。

  1.      $ SHOW PROTECTION
         SYSTEM=RWED, OWNER=RWED, GROUP=RE, WORLD=NO ACCESS
    

    SHOW PROTECTIONコマンドで,現在のシステムの省略時の保護コードを表示している。 この例では,システムの省略時の保護であることが示されている。 システムと所有者がすべてのアクセス権,グループ・ユーザが読み込みアクセス権と実行アクセス権を持ち, 一般ユーザにはアクセス権がないことがわかる。

  2.      $ SHOW SECURITY IMAGES.DIR
         DBA1:[SADAMS]IMAGES.DIR;1 object of class FILE
              Owner: [SAM,SADAMS]
              Protection: (System: RWE, Owner: RWE, Group: RE, World: E)
              Access Control List:
                (IDENTIFIER=[SAM,SADAMS],ACCESS=READ+WRITE+EXECUTE+DELETE+CONTROL)
    

    この例では,SHOW SECURITYコマンドで IMAGES.DIRファイルの現在の保護属性を表示している。

  3.      $ DIRECTORY/SECURITY IMAGES.DIR
    
         Directory DBA1:[SADAMS]
    
         IMAGES.DIR;1         [VMS,SADAMS]          (RWE,RWE,RE,E)
                  (IDENTIFIER=[VMS,SADAMS],ACCESS=READ+WRITE+EXECUTE+DELETE+CONTROL)
    
         Total of 1 file.
    

    この例では,DIRECTORYコマンドに/SECURITY識別子を指定することにより,IMAGES.DIR ファイルの現在の保護属性を表示している。

  4.      $ COPY/PROTECTION=(SYSTEM:RW,OWNER:RWED,GROUP:RW,WORLD) ABC.DAT XYZ.DAT
    

    この例では,/PROTECTION修飾子で,ABC.DATファイルをXYZ.DATファイルにコピーするときに保護コードを指定している。

  5.      $ SET SECURITY/PROTECTION=(SYSTEM:RWE,OWNER:RWED,GROUP:RE,WORLD) ABC.DAT
    

    この例では,SECURITY/PROTECTIONコマンドで,既存のファイルの保護コードを変更している。ABC.DAT ファイルについてこのコマンドが与えている指示は, システム・ユーザには読み込み,書き込み,および実行のアクセス権を, 所有者には読み込み,書き込み,実行,および削除のアクセス権を, グループ・ユーザには読み込みと実行のアクセス権を付与し, 一般ユーザにはアクセス権を付与しないというものである。

    システムと所有者には暗黙で制御アクセス権が付与され,変更されることはないが, グループと一般ユーザには,そうした制御権は与えられない。

9.5.3.3 ディスク・ファイルの保護属性の変更

ファイルの保護属性の設定と変更するDCLコマンドを表 9-3 に示します。

表 9-3 ファイルの保護属性の変更するDCLコマンド

コマンド 説明 参照箇所
SET DIRECTORY ディレクトリの属性を変更する。 ディレクトリの保護属性は,ディレクトリに含まれるファイルの保護属性に優先することがある。 第9.5.4項
SET FILE バージョン制限などのファイルの属性を変更する。 第9.5.3.3.2項
SET PROTECTION /DEFAULT ファイルに対する省略時のUIC保護を設定する。 『OpenVMS Guide to System Security』
SET SECURITY オブジェクトの機密保護プロファイルを変更する。 このプロファイルには,次の属性が含まれる。

  • アクセス制御リスト(ACL)。

  • 保護コード。システム,所有者,グループ,一般などのカテゴリに基づいて, アクセスを定義する。

  • 所有者。システムは所有者属性を使用して,保護コードに割り込みを行う。
『OpenVMS Guide to System Security』,『OpenVMS DCL ディクショナリ』
SET VOLUME マウント済みのFiles-11ボリュームの属性を変更する。/FILE_ PROTECTION修飾子を使用すると,指定したディスク・ボリュームのすべてのファイルに適用する省略時の保護を設定することができる。 第8.4.1.2項

これらのDCLコマンドで使用可能な修飾子とパラメータについての詳細は, 『OpenVMS DCLディクショナリ』を参照してください。

9.5.3.3.1 ファイルの保護属性の変更

ファイルの保護属性を変更する場合は,次の形式で行います。

SET SECURITY/PROTECTION =コード ファイル指定[,...]

コード 指定したファイルに適用される保護属性を定義する。 このコードは省略できない。
ファイル指定 保護属性を変更するファイルを指定する。 ファイル名およびファイル・タイプが必要。バージョン番号を省略した場合は, 既存のファイルの最新バージョンについてのみ, 保護属性が変更される。ワイルドカード文字を使用できる。

この後の例では,ファイルの保護属性の変更方法をいくつか紹介します。

  1.      $ DELETE INCOME.DAT;3
         %DELETE-W-FILNOTDEL, error deleting DISK1:[SMITH]INCOME.DAT;3
         -RMS-E-PRV, insufficient privilege or file protection violation
         $ SET SECURITY/PROTECTION=OWNER:D INCOME.DAT;3
         $ DELETE INCOME.DAT;3
    

    この例では,INCOME.DAT;3が削除禁止になっていたため,SET SECURITY/PROTECTIONコマンドで所有者の削除アクセス権だけを変更している。 この変更によって,所有者はINCOME.DAT;3ファイルを削除することができた。

  2.      $ SET SECURITY/PROTECTION=(SYSTEM:R,OWNER:RWED,GROUP:RW) PAYROLL.LIS
    

    この例では,SET SECURITY/PROTECTIONコマンドを使用して, PAYROLL.LISファイルの保護コードを変更している。このファイルに対しては, システムに読み込みアクセス権,所有者に読み込み,書き込み, 実行,および削除のアクセス権,所有者のグループのメンバに読み込みおよび書き込みのアクセス権を付与している。

9.5.3.3.2 SET FILEコマンド

DCLのSET FILEコマンドを使用して,ファイルの属性を変更したり,ファイルに対して追加名すなわち別名を割り当てることができます。 この後の例では, このコマンドの使用例をいくつか紹介します。

  1.      $ SET FILE/EXPIRATION_DATE=15-APR-1998:11:00 BATCH.COM;3
    

    この例では,SET FILEコマンドを使用して,BATCH.COM;3というファイルの満了日を1998 年4月15日の午前11:00と設定している。

  2.      $ SET FILE/BEFORE=15-APR-98/ERASE_ON_DELETE PERSONNEL*.SAL
    

    このSET FILEコマンドはファイル指定PERSONNEL*.SALに一致するファイルで, 日付が1998年4月15日より前のすべてのファイルを探し出し, DELETEあるいはPURGEなどのコマンドで削除されるファイルをディスクから消去する。

  3.      $ SET FILE/OWNER_UIC=[DOCUMENTATION,GRAY]/VERSION_LIMIT=100 MYFILE.DAT
    

    MYFILE.DATというファイルの属性を変更している例。所有者UICを変更し, ファイルのバージョン制限値として100を設定している。/OWNER_ UIC修飾子を使用するためには,システムまたはグループ・レベルで所有権を変更するためのSYSPRV かGRPPRV特権が必要になる。

  4.      $ SET FILE OLD_FILENAME.DAT/ENTER=NEW_FILENAME.DAT
    

    この例では,OLD_FILENAME.DATファイルに別名(NEW_FILENAME.DAT)を割り当てている。 元のファイル名および別名はともに同一のファイルを参照するため, 別名を使用してファイルを削除する場合には注意が必要である。 ファイルを保存し,ファイル名の1つを除去する場合は,SET FILE コマンドに/REMOVE識別子を指定する。ファイル名にワイルドカード文字は使用できない。 詳細は『OpenVMS DCLディクショナリ』を参照。

9.5.4 ディスク・ディレクトリの保護

ディレクトリには個々に保護が設定されます。このときディレクトリの保護は, そこに含まれる個別ファイルの保護に優先することがあります。たとえば, ディレクトリに含まれているファイルが一般ユーザのアクセスを許可していたとしても, ディレクトリが一般ユーザのアクセスを拒否している場合, 一般ユーザがファイルにアクセスすることはできません。

ディレクトリを保護するために設定できるアクセス権を表 9-4 に示します。

表 9-4 ディレクトリの保護とアクセス権

アクセス権 与えられる権利
読み込み ファイルの表示,プリント,およびコピーのアクセス権。 ディレクトリに対する読み込みアクセス権があると,DIRECTORY コマンドを使ってディレクトリの内容を表示することができる。 たとえば,ディレクトリ[JONES]に対する読み込みアクセス権があれば, 次のコマンドを入力することによって,[JONES]ディレクトリに含まれるファイルのリストを得ることができる。
     $ DIRECTORY [JONES]

このアクセス権があれば,ファイル自体にアクセスを拒否する保護が設定されていないかぎり, ディレクトリ中の任意のファイルにアクセスすることができる。

書き込み ディレクトリを変更したり, ディレクトリに書き込んだりする権利。ただし, ディレクトリでのファイルの作成,ディレクトリ内のファイル名の変更などのディレクトリ・ ファイルの変更を伴うファイル操作を行うためには, ディレクトリに対する読み込みおよび書き込み両方の権利が必要である。
実行 この権利がディレクトリに対して適用されると, 実行アクセス権により,名前を指定してファイルにアクセスできるが, ディレクトリ内の全エントリをリストすることはできない。 すなわち,特定のあるいは暗黙のワイルドカードは使用できない。 たとえば,[JONES]ディレクトリに対する権利が実行アクセス権しかなくて, 次のコマンドを入力すると仮定する。
     $ DIRECTORY [JONES]

これに対しシステムはエラー・メッセージ"insuffcient privilage or file protection violation"を出すだけで,[JONES]ディレクトリのファイルのリストを表示しない。[JONES] ディレクトリにDATAFILE.DATというファイルがあることが判明している場合は, 次のコマンドを使用することができる。

     $ TYPE [JONES]DATAFILE.DAT

システムは指定ファイルの内容を表示する。つまり,アクセス権が実行アクセス権だけの場合は, 読み込みアクセス権で可能な操作の一部しか行うことができない。 個々のファイルへのアクセスは,まだファイル保護によって制御されている。

たとえば,EXPENSES.DATファイルの内容を表示するには,ディレクトリ・ ツリー内のJONES,REPORT,およびJUNEの各ディレクトリに読み込みアクセス権または実行アクセス権を持っている必要がある。

     $ TYPE [JONES.REPORTS.JUNE]EXPENSES.DAT
削除 ディレクトリ・ファイルを削除する権利。 ディレクトリ・ファイルを削除するためには, ディレクトリに含まれるすべてのエントリを削除しておく必要がある。 CREATE/DIRECTORYコマンドでディレクトリを作成した場合,省略時の設定では, 削除アクセス権は付与されない。ディレクトリ・ファイルを削除したい場合は,DCL のSET PROTECTIONコマンドを使用し,所有者カテゴリに明示的に削除アクセス権を割り当てておく必要がある。
制御 ディレクトリの属性を変更する権利。

UICに基づくディレクトリの保護

ファイルを完全に保護するためには,それが置かれているディレクトリに少なくとも同じ保護を適用する必要があります。 たとえば,ファイルに対するすべてのアクセス権をユーザに与えていて, そのファイルが存在するディレクトリについて, 読み込みアクセス権だけ与えている場合,ユーザはファイルの存在を確認することはできますが, ファイルの内容にアクセスすることはできません。 また,ファイルに対するアクセスだけ許可されていて, そのファイルが存在するディレクトリまたはそのディレクトリの親ディレクトリに対するアクセスが拒否されている場合は, ファイルの存在を確認することもできません。


注意
重要なファイルの保護は,ディレクトリの保護だけでは不十分です。 ディレクトリに含まれるファイルについても, 個々に保護する必要があります。ディスク・ファイルの保護については, 第9.5.3項を参照してください。

省略時の設定では,ディレクトリにはUICに基づく保護(S:RWE,O:RWE,G:RE,W:E) が適用され,ACLは適用されません。新しく作成されたディレクトリには, 削除アクセス権を除き,親ディレクトリと同じ保護が適用されます。

ディレクトリにUICに基づく保護を指定するときは,次のガイドラインに従ってください。

以降の項ではディレクトリ保護属性と省略時のACL保護の変更について説明します。

9.5.4.1 ディレクトリUIC保護属性の変更

ディレクトリの保護属性の変更には,DCLのSET DIRECTORYコマンドを使用します。

     $ SET DIRECTORY/OWNER_UIC=[360,020] [DAVIS],[USERS]

この例では,[DAVIS]と[USERS]ディレクトリの所有者UICを変更しています。/OWNER_UIC 修飾子には,SYSPRV (システム特権)が必要になります。

9.5.4.2 省略時のACL保護の変更

省略時の保護ACEを適切なディレクトリ・ファイルのACLに置けば,指定ディレクトリまたはサブディレクトリの省略時のUIC 保護を変更できます。 ACEで指定されている省略時の保護は,指定のディレクトリ,あるいはそのディレクトリの任意のサブディレクトリにあるすべての新規ファイルに適用されます。

次のACEは,(ディレクトリおよびサブディレクトリ内で作成されたファイル用の) 省略時の保護が,システムおよび所有者にフル・アクセス権,グループ・ プロセスに読み込みおよび実行アクセス権を許し,ワールド・ユーザにアクセスを許さないように指定します。ACE はディレクトリ・ファイルのACL に入っている必要があります。

     (DEFAULT_PROTECTION,S:RWED,O:RWED,G:RE,W:)

9.5.5 磁気テープ・ファイルの保護

テープは個々のユーザの装置であるため,テープの保護はボリューム・レベルでしか行われません。 通常,磁気テープ・ボリュームの保護コードは,INITIALIZE コマンドで設定します。

DCLコマンドを使用して,磁気テープ・ボリュームの保護属性を変更することはできません。 詳細は第8.5.1項を参照してください。

9.6 ディスク・ファイルへのアクセス

この節では,DCLコマンドを使用して,レコード・レベルではなく,ファイル・ レベルでファイルにアクセスする方法について説明します。 こうしたアクセスが行われる処理には,ファイルの読み込みとテープ・ ファイルのコピーがあり,前者についてはこの節で,後者については第9.8.1項でそれぞれ説明します。

DCLには,レコード・レベルでファイルを操作する機能があります。しかし, 性能上の理由から,ユーザ独自のプログラムを代わりに使用することもあります。 このような場合は,レコード・レベルでのファイル・アクセス専用に設計されているOpenVMS レコード管理サービス(RMS)機能を利用することをおすすめします。 オペレーティング・システムがサポートしている言語であれば, 任意の言語を使用できます。

ファイル・レベルでのディスク・ファイルのアクセスには,DCLコマンドを使用することができます。 ただし,DCLコマンドを使用して,オペレーティング・ システムがサポートしている標準形式以外のファイルを,読み込みまたは書き込みすることはできません。 ファイルが標準形式以外の場合は,/FOREIGN 修飾子でボリュームをマウントして,読み込みまたは書き込みする必要があります。

この節で紹介する例は,RA90ディスク・パック上のディスク・ファイルに対するアクセス例ですが, 使用されている方法は他の装置にも有効です。

DCLにおいて,ディスク・ファイルを読み込みたい場合は,ターミナルにファイル内容を表示するTYPE コマンドを使用します。また,読み取るディスク・ ファイルの格納場所を知りたい場合は,DIRECTORYコマンドを使用します。

作業方法

ここでは,論理名DISK$DOCUMENTが指すディスク装置の, [CHARLES]というディレクトリに含まれていることがわかっている, HISFILE というファイルの内容を読み取る手順を紹介します。

  1. 次のコマンドを入力して,HISFILEが格納されている場所を調べる。
         $ DIRECTORY DISK$DOCUMENT:[CHARLES...]HISFILE.*
    

    オペレーティング・システムは[CHARLES]ディレクトリとそのすべてのサブディレクトリを検索して,HISFILE のすべてのファイル・タイプとバージョン番号を探す。

    ターミナルに次の情報が表示される。

         Directory DISK$DOCUMENT:[CHARLES.MEMO]
    
         HISFILE.UPD;1
    
         Total of 1 file.
    

    この情報は,HISFILEには1つのバージョンしか存在せず,ファイル・ タイプがUPDであること,また,そのファイルが[CHARLES.MEMO]ディレクトリに存在していることを示している。

  2. 次のコマンドを入力して,ファイルの内容を読み込む。
         $ TYPE [CHARLES.MEMO]HISFILE.UPD
    

    ターミナルにHISFILEの内容が表示される。

9.7 テープ・ファイルへのアクセス

この節では,ファイル・レベルでのテープへのアクセスについて説明します。 標準ラベルのボリュームまたはファイルへのアクセス要求があると, オペレーティング・システムは,プロセスがその権限を持っているかチェックします。 このときシステムがアクセスをチェックするレベルは,ボリューム・ レベルとファイル・レベルの2つです。どのレベルのチェックが行われるかは, 要求された処理と,その処理が必要とするアクセスのタイプによって異なります。

ボリュームまたはファイルへのアクセスがあると,オペレーティング・システムは, そのボリュームまたはファイルに対するアクセスが制限されていないか調べます。 このとき読み取られるラベルは,要求された処理によって異なり, ボリューム・ラベルかファイル・ヘッダ・ラベル,あるいはその両方が読み取られます。 たとえば,ボリュームのマウントの場合,プロセスにはそのボリュームに対するアクセス権が必要です。

ファイルに対するアクセスの可否は,そこに設定されている保護コードによって決まります。 また,ヘッダの満了日フィールドによって,直前のファイルに対する書き換えや追加を防ぐことができます。 満了日に達していないファイルが満了することはありません。

満了していないファイルを書き換えるためには,ボリュームをマウントするときに/OVERRIDE=EXPIRATION 修飾子を指定する必要があります。また, この操作を行うためには,読み込みアクセス権か書き込みアクセス権が必要です。

この節では,テープ・ファイル名および磁気テープに対する次の作業について説明します。

作業 参照箇所
標準ラベル・テープ上のファイルの検索 第9.7.2項
テープ・ファイルに対するワイルドカード文字の使用法 第9.7.3項
テープ・ボリュームからのファイルの読み込み 第9.7.4 項
テープ・ボリュームへのファイルの書き込み 第9.7.5項

9.7.1 テープ上のファイル名の説明

OpenVMSシステムでは,磁気テープのファイルに対して,2種類のファイル名を使用することができます。

表 9-5に,OpenVMS拡張ファイル名および標準ファイル名の特性の違いを示します。

表 9-5 OpenVMS拡張ファイル名および標準ファイル名の比較

特性 OpenVMS拡張ファイル名 標準ファイル名
有効な
ボリューム
テープ・ボリュームおよびディスク・ボリューム テープ・ボリューム
形式 ファイル名.タイプ;バージョン ファイル名.; バージョン(バージョンはオプション)
長さ 39.39; 17.;
有効な文字 AからZ,0から9,アンパサンド(&) ,ハイフン(-),アンダスコア( _ ),ドル記号($),ワイルドカード文字のアスタリスク(*) およびパーセント記号(%) 二重引用符(" ") で囲まれたASCII "a"[1]文字。DCLはファイル名の1組の二重引用符("") を単一の二重引用符(")として解釈する。ファイル名が17文字に満たない場合は, システムはファイル名の右側をスペースで埋め,最大サイズの17 文字にする。
OPENVMS_ FILENAME.DAT;23 "GENLABEL#123";2

[1] ASCII "a"文字セットはISO 9660規格の7.4.1に定義されている。

9.7.2 標準ラベル・テープ上のファイルの検索

磁気テープ・ボリューム上のファイルにアクセスして,読み込みまたは書き込みを行う際に, その格納場所が分からないことがあります。そうした場合は,DCL のDIRECTORYコマンドを使用してください。

テープ・ファイル名を指定したDIRECTORYコマンドが入力された場合,テープ・ ファイル・システムは次のことを行います。

  1. 指定されたファイル名と一致するものが見つかるまで,各ファイルのファイル・ ヘッダ・ラベルのファイル識別子フィールドを調べる。

  2. ファイル識別子フィールドのファイル名が,指定ファイル名と最初に一致するファイルを選択する。

    オペレーティング・システムは,磁気テープ・ボリュームのディレクトリ構造と最新バージョン番号の適用をサポートしていない。 したがって, 磁気テープ・ボリューム上のファイルの最新バージョンの検索やリスト表示を行うことはできない。 磁気テープ・ファイル・システムがテープ・ ファイルのバージョン番号を増やすことはないので,同じボリューム・ セットに同じファイル名とバージョン番号を持つファイルが存在することがある。

    そうした場合,テープ・ファイル・システムは最初に一致するファイル名とバージョン番号を選択する。 このため,検索したときにどのファイルが返されるかは, ボリューム・セット内の磁気テープの検索開始位置によって異なる。 検索処理はテープ上の現在位置から開始されるので, 場合によってはファイルのアクセス前にテープ・ボリュームを巻き戻すことが必要である。

  3. 次のファイルのヘッダ・ラベル・セットの先頭から,一致ファイルの検索が再開される。 検索が終了するのは,磁気テープが検索を開始したファイル位置になったとき。

    ボリューム・セットの現在のボリューム内に一致するファイルがない場合は, システムは残りのボリュームを順次検索し,さらに,先頭ボリュームの先頭に戻って検索を行う。 そして一致するファイルがない場合は, エラーを報告する。

9.7.3 テープ・ボリュームに対するワイルドカード文字の使用法

OpenVMSオペレーティング・システムでは,いくつかの制限がありますが, テープ・ボリュームに対するファイル指定でワイルドカード文字を使用することができます。

OpenVMS拡張ファイル名および標準ファイル名でのワイルドカード文字の使用方法を 表 9-6に示します。

表 9-6 テープ・ボリュームに使用できるワイルドカード文字

ワイルドカード
文字
OepnVMS
拡張ファイル名
標準
ファイル名
説明
アスタリスク(*) X X OpenVMS拡張ファイル名では,ファイル名およびファイル・タイプ・ フィールドの任意の位置にアスタリスクを使用して,フィールドの一部または全体と見なすことができる。 また,バージョン番号フィールドにもアスタリスクを使用することができる。

標準ファイル名では,1つのフィールドにアスタリスクは1つしか使用できない。

パーセント記号(%) X
OpenVMS 拡張ファイル名においてパーセント記号を使用した場合,フィールド内の対応する文字位置の文字を任意の一文字と見なすことができる。 バージョン番号フィールドでパーセント記号を使用することはできない。

OpenVMS拡張ファイル名の場合は,ファイル名とファイル・タイプ・フィールドのそれぞれを39 文字の長さまで指定できるのに対し,標準ファイル名の長さは最大で17 文字です。

次の例では,DIRECTORYコマンドのファイル指定でワイルドカード文字を使用して, テープ・ボリュームのファイルを検索する方法を紹介します。 ディスク・ファイルとテープ・ファイルとでは,DIRECTORYコマンドの働きが異なります。

  1.      $ DIRECTORY MFA1:*.*;*
    

    システムにボリューム・セットの検索を指示している例。ファイル指定にアスタリスクが使用されているので, システムはOpenVMS拡張ファイル名と標準ファイル名の両方を返す。 また,テープ・ファイル名の方は二重引用符で囲まれて返される。

  2.      $ DIRECTORY MTA1:%*.*;*
         $ DIRECTORY MTA0:*.%*;*
    

    これら2つのコマンドにはパーセント記号が使用されている。標準ファイル名に対してパーセント記号は無効であるため, 検索はOpenVMS拡張ファイル名にしか働かない。2 つ目のコマンドの場合,ファイル・タイプ・ フィールドには少なくとも1文字が含まれている必要がある。ファイル・ タイプを持たないファイルが返されることはない。

  3.      $ DIRECTORY MTA0:*.;*
    

    この例では,ファイル・タイプがない標準ファイル名とOpenVMS拡張ファイル名を持つファイルを検索している。

9.7.4 テープ・ボリュームからのファイルの読み込み

テープ・ファイルにアクセスして読み込みを行おうとすると,テープは, ファイル・ヘッダ・ラベルの後のファイル・セクションの先頭に位置付けられます。 また,テープ・ボリューム上のファイルにアクセスして,ファイル・ セクションのデータではなく,ヘッダ・ラベルの属性だけ読み取ろうとすると, プロセスにRMS属性が返されます。たとえばボリュームかファイル, またはファイルのリストにDIRECTORY/FULLコマンドが実行されたときにテープ・ ファイル・システムが行うことは次のとおりです。

  1. ヘッダ・ラベルからファイル識別コードを選択する。

  2. プロセスにファイル属性を返す。

  3. 最後にアクセスされたファイルのヘッダ・ラベルの後にテープを位置付ける。

読み込みアクセスでオープンされたテープ・ファイルは,次のいずれかの方法で暗黙に, または明示的にクローズされます。

方法 説明
暗黙に
クローズ
ファイルの読み込み中にテープ・マークが検出された場合, ファイルは暗黙にクローズされる。テープ・ファイル・システムは, トレーラ・ラベルを読み取ってファイルをクローズし,次のファイル位置にテープを位置付ける。
明示的に
クローズ
ファイルのデータをすべて読み取る前にアクセスを終了した場合, ファイルは明示的にクローズされる。テープ・ファイル・ システムはトレーラ・ラベルを読み取らずに,単にファイルをクローズする。 テープのアクセス位置が変わることはない。

DCLのTYPEコマンドを使って,テープ・ボリュームのファイルを読み込み, その内容をターミナルに表示することができます。たとえば, TESTFILE.DOC;1というファイルの内容を読み込む場合は,次のコマンドを使用します。 このとき,ディレクトリ検索によって,TESTFILE.DOC;1テープ・ ファイルがテープ・ボリュームMTA1:に含まれるOpenVMSファイルであることがわかっているものとします。

     $ TYPE MTA1:TEST*.%*;*

ターミナルには次の情報が表示されます。

     MTA1:TESTFILE.DOC;1

     This is a test file.

9.7.5 テープ・ボリュームへのファイルの書き込み

テープ・ボリュームへのファイルの書き込みの場合,テープ・ファイル・ システムはアクセス・チェックを行って,ラベルを書き込み,必要ならばボリュームを切り換えます。

9.7.5.1 既存ファイルを書き換える新しいファイルの書き込み

新しいファイルによって既存ファイルが書き換えられる場合,テープ・ファイル・ システムは次のことを行います。

  1. 既存のファイルの満了日とアクセス制御フィールドをチェックする。

  2. 書き換えが可能な場合は,次のことを行う。

    1. 既存のファイルのヘッダ・ラベル・セットを書き換える。

    2. ファイル・セクションを作成する。

    3. トレーラ・ラベルを書き込む。

    4. 論理的なボリュームの終わり(EOV)を示すテープ・マーク2 つを書き込む。

新しいファイルより後ろのファイルはすべて失われます。

書き込みアクセスでオープンしたテープ・ファイルをクローズするとき, テープ・ファイル・システムはドライバにコマンドを送って,ラベルと, 論理的なボリュームの終わりを示すテープ・マーク2つを書き込みます。

9.7.5.2 ファイルの追加または更新

DCLを使用して既存のファイルに書き込みアクセスした場合,実際に行われるのは次に説明する追加または更新操作のいずれかです。

操作 説明
追加 追加を目的としたファイルのアクセスの場合,テープは, トレーラ・ラベルの前のテープ・マークの前に位置付けられる。そして, ファイルが追加され,クローズされると,ファイルの作成と同じ処理が行われる。
更新 更新を目的としたファイルのアクセスの場合, テープは,ヘッダ・ラベルの後のテープ・ マークの後ろに位置付けられる。そして,ファイルが書き込まれ, クローズされると,ファイルの作成と同じ処理が行われる。

テープ・ファイルの更新または追加を行えるのは,バッファ・オフセットの長さとして値0 がヘッダ・レベルに設定されている場合だけです。 テープ・ファイルの実際の更新と追加方法については,第9.8節で説明します。

ファイルを更新するときに/OVERRIDE=EXPIRATIONが指定されなかった場合, テープ・ファイル・システムは,書き込みを許可する前にファイルの満了日フィールドをチェックします。

また,ファイルの追加の場合は,追加先のファイルとその直後のファイル両方の満了日を調べ, いずれかのファイルが満了日に達していない場合, 磁気テープ・ファイル・システムはファイルの追加を許可しません。

CREATEコマンドを使用してボリュームにアクセスし,書き込みを行うことができます。 たとえば,テープ・ボリュームに新しいファイルを書き込むCREATE コマンドの例を次に示します。

     $ CREATE MTA0:MYFILE

この例にあるコマンドに類似したコマンドを実行したら,続いて次の操作を行います。

  1. ファイルの内容を入力する。

  2. Ctrl/Zを押して,DCLコマンド・レベルを離れることなくファイルをクローズし, テープ・ボリュームにファイルを書き込む。

9.8 ファイルのコピーおよび転送

OpenVMSオペレーティング・システムには,情報転送の手助けをする機能が数多くあります。 そのため,同じシステムばかりでなく,他のオペレーティング・ システムとの間でもディスクやテープのファイルのコピーを行うことができます。

情報転送の方法の要約を表 9-7 に示します。

表 9-7 情報転送の方法

方法 説明
DCLのCOPY コマンド 情報の転送で最もよく使われる方法。
CONVERT ユーティリティ ローカル・システムにおいて,順編成から索引編成などのようにファイルの編成を変更できる。
EXCHANGE ユーティリティ ローカル・システムにおいて,OpenVMS 以外のオペレーティング・システムでフォーマットされたディスク・ ボリュームおよびテープ・ボリュームにアクセスできる。EXCHANGEを使用して, フォーリン・ボリュームと標準的なFiles-11ボリュームの間でファイルの転送を行うことができる。
DCL のEXCHANGE/NETWORKコマンド ネットワークを介して, OpenVMSと他のオペレーティング・システムとの間でファイルの転送を行うことができる。 このコマンドは,OpenVMSを使用しているノードとOpenVMS を使用していないノードの間でファイルの転送を行う場合に, 有用である。コピーされたファイルは,OpenVMSおよび他のオペレーティング・ システムにおいて,それぞれ適したフォーマットを持つ。
BACKUP ユーティリティ テープの場合,ディレクトリ・ツリー全体, あるいは順編成ではないファイルをコピーする唯一の手段である。BACKUP を使用したファイルのコピーについては,第10.13.2項を参照。

COPYコマンド,Exchangeユーティリティ,およびDCLのEXCHANGE/NETWORK コマンドについては,次の項で説明します。

多くの場合,情報のコピーは,物理的な媒体の移動を伴わずに行うことができます。 しかし,通信リンクで接続されていないシステム間でコピーを行うこともあります。 このような場合は,別の場所に物理的にファイルを移動する必要があります。 たとえば,テープ・リールやテープ・カートリッジ, あるいはディスク・パックなどの可搬型のボリュームにファイルをコピーし, そのボリュームを別の場所に持っていきます。

この節では,次の作業について説明します。

作業 参照箇所
ディスク・ボリュームへのファイルのコピー 第9.8.1項
テープ・ボリュームへのファイルのコピー 第9.8.2項
テープの終わり位置でのコピーの継続 第9.8.3 項
EXCHANGEユーティリティによるファイルのコピー 第9.8.4 項
DCLのEXCHANGE/NETWORKコマンドによるネットワークを介したファイルの転送 第9.8.5項

9.8.1 ディスク・ボリュームへのファイルのコピー

ディスク・ボリュームにファイルをコピーするためには,次のことを行っておく必要があります。

  1. 第8.3節で説明したボリュームの設定。

  2. ファイルを格納するためのディレクトリの作成。ディスクはランダム・ アクセス・デバイスであり,ファイルはディレクトリに格納する必要がある。

ディスクからのコピーの場合

ディスク・ボリュームのファイルの省略時の形式は,Files-11構造のレベル2 の形式です。その他,RSX-11MやRSX-11M-PLUS,RSX-11D,IASなどの他の弊社オペレーティング・ システムで使用されているFiles-11構造のレベル1 形式でディスクを初期化することもできます。

ディスクから標準ラベルのディスク・ボリュームにファイルをコピーすると, 次の項目に変更が加えられます。

COPYコマンドを使用して,省略時のディレクトリにあるすべてのファイルの最新バージョンを, 同じボリュームの別のディレクトリにコピーすることができます。

テープからのコピーの場合

磁気テープのファイルの省略時の形式は,標準ラベルのボリュームの形式です。OpenVMS システムは,ディスク・ファイルとして順編成,相対編成, および索引編成ファイルをサポートしていますが,標準ラベルのディスク・ ボリュームには順編成ファイルしかコピーできません。また,有効なレコード形式は可変長と固定長だけです。

テープ・ファイル名を持つファイルを磁気テープからディスクにコピーする場合は, 出力ファイル名として標準のOpenVMSファイル名を指定してください。 出力側がOpenVMSファイル名以外の場合,プロセスには次のエラー・ メッセージが送られます。

     RMS-F-FNM, error in file name

このメッセージは,テープ・ファイル名が有効なOpenVMSファイル名ではないことを示しています。

/LOG修飾子を指定したCOPYコマンドが入力された場合,システムはファイルを1 つコピーし終えるたびに現在のSYS$OUTPUT装置にメッセージを送ります。 ファイルのコピーが正常に行われたか確認したい場合は, DIRECTORYコマンドを使用してください。

  1.      CREATE/DIRECTORY DMA3:[PUBS]
         $ DEFINE P DMA3:[PUBS]
         $ COPY *.* P
         $ COPY [PRIMER]*.* P
         $ COPY [COMMANDS]*.* P
    

    この例では,CREATE/DIRECTORYコマンドで,DMA3:に[PUBS]という名前のディスク・ ディレクトリを作成し,DEFINEコマンドで, DMA3:[PUBS]を論理名Pと定義している。そして,COPYコマンドを使い, 現在の省略時のディレクトリと[PRIMER],[COMMANDS]ディレクトリに含まれるすべてのファイルの最新バージョンを, 新たに作成したディレクトリにコピーしている。

  2.      $ COPY *.* DMA5:[PRIVATE]
    

    この例では,ディスク装置DMA5:がプロセスに割り当て済みで,ディスク・ ボリュームが初期化されていること,さらには,そのボリュームがDMA:5 にマウント済みであることが前提になる。また,PRIVATEというディレクトリをあらかじめボリュームに作成しておく必要がある。

  3.      $ COPY/LOG MTA1:"%&*?!SKI! """ SEASON.DAT
         %COPY-S-COPIED, MTA1:[]"%&*?!SKI! """.;1
         copied to WRKD:[MANUAL]SEASON.DAT;1 (120 records)
    

    この例ではCOPY/LOGコマンドで,%&*?!SKI!#" (#はスペース)というテープ・ ファイルを省略時のディスクの省略時のディレクトリWRKD:[MANUAL] のSEASON.DATというファイルにコピーしている。ディスクにファイルをコピーする場合は, 新しいファイル名を指定しなければならない。OpenVMS は,ファイル指定で指定されなかった空き部分を省略時の値で埋める。

    /LOG修飾子が指定されているため,システムは,テープ・ボリュームMTA1: のファイルを指定どおりにコピーしたことを確認するメッセージを返す。 またこのメッセージには,コピーしたレコード数も示される。

  4.      $ COPY/LOG MTA0:*.* *
         %COPY-S-COPIED, MTA0:[]TASTETEST.DAT;1
         copied to WRKD:[FOOD]TASTETEST.DAT;1 (249 records)
         %COPY-S-COPIED, MTA0:[]ALLAT;1 copied to WRKD:[FOOD]ALALL;1 (48 records)
         %COPY-S-NEWFILES, 2 files created
    

    この例では,ファイル名とファイル・タイプ・フィールドにワイルドカード文字を使用している。 テープ・ボリュームからディスク・ボリュームにコピーされたファイルは2 つだけである。

  5.      $ COPY/LOG MTA1:*.* [EX]
         %COPY-S-COPIED, MTA1:[].DAT;1 copied to WRKD:[EX]TEST.DAT21 records
         %COPY-E-OPENOUT, error opening WRKD:[EX]"%&*()!SKI! """.;1 as output
         -RMS-F-FNM, error in file name
         %COPY-W-NOTCOPIED, MTA1:[]"%&*()!SKI! """.;1 not copied
         %COPY-E-OPENOUT, error opening WRKD:[EX]"SANFRAN%%%""".;1 as output
         -RMS-F-FNM, error in file name
         %COPY-W-NOTCOPIED, MTA1:[]"SANFRAN%%%""".;1 not copied
         %COPY-S-COPIED, MTA1:[]OPENVMS_LONG$FILE_NAME.LONG_EXT;1
         copied to WRKD$:[EX]OPENVMS_LONG$FILE_NAME.LONG_EXT;1 (80 records)
         %COPY-S-COPIED, MTA1:[]C6.JOU;1 copied to WRKD:[EX]C6.JOU;1 (4 records)
         %COPY-S-NEWFILES, 2 files created
    

    このCOPY/LOGコマンドは,テープ・ボリュームMTA1:にマウントされているボリュームのすべてのファイルを現在の省略時のディスクの省略時のディレクトリWRKD:[EX] にコピーするよう指示している。しかしながら, 実際にはテープ・ファイル名のファイルはコピーされず,代わりに, エラー・メッセージが返されている。

9.8.2 テープ・ボリュームへのファイルのコピー

COPYコマンドは,ディスク・ボリュームからテープ・ボリュームへのファイルのコピーにも使用することができます。 手順は,ディスク・ボリューム間のファイルのコピーとほぼ同じです。 しかし,テープは順次アクセス装置であり, ディレクトリはありません。ディスク・ファイルをテープ・ ボリュームにコピーするためには,テープ装置の構成,すなわち,テープ装置の初期化およびマウントを行っておく必要があります。 テープ・ファイルの属性については, 第9.7 節を参照してください。

磁気テープは,Files-11形式のファイル名に完全対応しています。したがって, たとえば次のファイル名のディスク・ファイルを,ファイル名を変更することなく磁気テープ・ ボリュームにコピーすることができます。

        THIS_IS$AN_OPENVMSLONG_FILE.LONG_TYPE


注意
OpenVMS以外のオペレーティング・ システムの大半は,17文字を超える長さのファイル名を使用しません。

OpenVMSシステムでは,ストリーム・レコードと固定長制御部付可変長(VFC) レコードに対応していますが,標準ラベルのボリューム上では,そうしたレコードを可変長形式でコード化します。OpenVMS 以外のシステムでは, ストリーム・レコードとVFCレコードを可変長レコードと区別せず, 両方を可変長レコードと見なします。したがって,OpenVMS以外のシステムとの情報の相互交換に使用するボリュームにストリーム・ レコードやVFC レコードは作成しないでください。

次に,DCLコマンドを使用して,ディスク・ボリュームの省略時のディレクトリに含まれているファイルを, 標準ラベルの磁気テープ・ボリュームにコピーする手順を紹介します。 ここでは,ディスク・ファイルをコピーする前に, 磁気テープを割り当て初期化する例も取り上げています。

作業方法

ディスク・ボリュームの省略時のディレクトリに含まれているファイルを標準ラベルの磁気テープ・ ボリュームにコピーする手順は次のとおりです。

  1. 最初に次のコマンドを入力して,磁気テープ装置を割り当てる。
         $ ALLOCATE MT: TAPE_DEVICE
         %DCL-I-ALLOC _MARS$MTA2: allocated
    

    このALLOCATEコマンドでは,名前がMTから始まるテープ装置の割り当てを要求している。 この例では,論理名TAPE_DEVICEはMARS$MTA2:装置を意味する。

    システム応答は,コントローラAのユニット2が使用可能であったため, それを割り当てたことを示している。これで,物理的にテープ装置にテープをセットすることができる。 テープに書き込みリングが付いていることを確認する。 付いていない場合は,テープに書き込みを行えない。

  2. 次のようなコマンドを入力して,テープを初期化する。
         $ INITIALIZE TAPE_DEVICE: GMB001/PROTECTION=(GROUP:R,WORLD)
    

    このINITIALIZEコマンドは,ボリュームに対して論理名(この場合,MTA2: を参照するTAPE_DEVICE)と,テープ・ボリューム(この場合,GMB001) を指定している。ラベルは6文字に制限されている。 /PROTECTION修飾子に指定された保護コードは,グループを読み込みアクセス権に制限し, 一般ユーザのアクセスは許可しない。

  3. 次に示すように,MOUNTコマンドを入力してボリュームをマウントし, ファイルを書き込む。
         $ MOUNT TAPE_DEVICE: GMB001
         %MOUNT-I-MOUNTED, GMB001 mounted on _MTA2:
         $ COPY *.* TAPE_DEVICE:
    

    MOUNTコマンドには,テープ装置にセットされているテープ・ボリュームの装置名とボリューム・ ラベルを指定している。COPYコマンドは, 省略時のディレクトリに含まれるすべてのファイルの最新バージョンをテープにコピーする。 省略時の設定では,出力ファイルのファイル名と, ファイル・タイプ,バージョン番号は,入力ファイルのものと同じである。

    /LOG修飾子を指定したCOPYコマンドが入力されると,システムはファイルのコピーを終えるたびに, 現在のSYS$OUTPUT装置にメッセージを出力する。

  4. 次のDIRECTORYコマンドを使用して,ファイルのコピーが正常に行われたか確認することもできる。
         $ DIRECTORY TAPE_DEVICE:
    

    このコマンドが入力されると,システムは,テープにコピーされたすべてのファイルのファイル名とファイル・ タイプを表示する。

  5. 磁気テープに対する必要な作業を終えたら,次のコマンドを入力して, ディスマウントと割り当て解除を行う。
         $ DISMOUNT TAPE_DEVICE:
         $ DEALLOCATE TAPE_DEVICE:
    

    ディスマウントと割り当て解除が明示的に行われなかった場合は,ログアウト時にシステムが自動的にそれらの処理を行う。

次に,ディスク・ファイルをテープ・ボリュームにコピーする例をいくつか紹介します。

  1.      $ COPY *.* MTA2:
    

    この例では,MTA2:がプロセスに割り当て済みであり,かつ,その装置にセットされているテープ・ ボリュームの初期化とマウントが済んでいることが前提になる。COPY コマンドは,ファイルをMTA2:のテープ・ ボリュームにコピーする。

    テープ・ボリュームにコピーされるファイルは,省略時のディスク・ ディレクトリに含まれるすべてのファイルの最新バージョンである。 省略時の設定では,出力ファイルのファイル名と,ファイル・タイプ, バージョン番号は,入力ファイルのものと同じである。

  2.      $ COPY/LOG FORTAP.DAT MTA1:"%&*?!SKI! "" "
         %COPY-S-COPIED, WRKD:[MANUAL]FORTAP.DAT;1
         copied to MTA1:[]"%&*?!SKI! """.;0 (120 records)
    

    ディスクからテープへのコピーを行う,このCOPYコマンドでは,出力ファイル指定にテープ・ ファイル名を指定している。テープ名では末尾スペースが意味を持たないので, ファイル名%&*?!SKI!##"# (#はスペース) の末尾のスペースは含まれない。

  3.      $ COPY/LOG OPENVMS_LONG$FILE_NAME.LONG_EXT MTA1:
         %COPY-S-COPIED, WRKD:[MANUAL]OPENVMS_LONG$FILE_NAME_EXT;1
         copied to MTA1:OPENVMS_LONG$FILE_NAME.LONG_EXT;1 (80 records)
    

    この例では,ファイル名も長く,ファイル・タイプも長いディスク・ ファイルを,ファイル名もファイル・タイプも変更せずに, MTA1:のテープ・ ボリュームにコピーしている。

  4.      $ COPY/LOG %%.JOU;* MTA1:*.*
         %COPY-S-COPIED, WRKD:[MANUAL]C6.JOU;1 copied to MTA1:[]C6.JOU;1 (4 records)
    

    この例では,ファイル名が2文字の長さで,ファイル・タイプが.JOUのすべてのファイルを, ファイル名もファイル・タイプも変更せずに, MTA1:のテープ・ボリュームにコピーしている。バージョン番号が変更されることはない。

9.8.3 テープの終わり位置でのコピーの継続

テープへの,またはテープからのコピー中にテープの終端に達した場合, システムは処理を中断して,ボリューム・セットの次のテープをマウントするよう要求します。 このとき,ターミナルには,オペレータ通信マネージャ(OPCOM) からの次のようなメッセージが表示されます。

     %%%%%%%%%%%  OPCOM, 14-MAY-1998 15:23:31.78  %%%%%%%%%%%
     request 3, from user PLAW
     MOUNT new relative volume 2 (DW0QT2) on MTA1:


注意
テープ・メッセージは受信が有効になっているオペレータのターミナルにしか送られないため, 通常, このメッセージがシステム管理者のターミナルに表示されることはありません。 読み込みまたは書き込みを終えるのに,別のテープが必要であるかどうかは, 担当オペレータが判断することになります。

OPCOMメッセージについては,第18.6節で詳しく説明しています。

自動ボリューム切り換えが無効であるか,テープ・ファイル・システムがボリュームのマウントを行えない場合は, ボリューム・セットの継続ボリュームをマウントしなければならないことがあります。 継続ボリュームのマウントについては, 第8.8.2項を参照してください。

9.8.4 EXCHANGEユーティリティによるファイルのコピー

EXCHANGEユーティリティは,異なる構造のボリューム間でファイルをコピーするとき, 必要に応じてファイルの形式を変換するユーティリティです。 このユーティリティは,OpenVMS装置のすべてのFiles-11 やRT-11ディスク・ボリュームばかりでなく,9トラック・ テープ装置のDOS-11やRT-11形式のボリュームも認識します。

EXCHANGEユーティリティの使用法と,EXCHANGEユーティリティのすべてのコマンド, 修飾子,パラメータについての詳細は,『OpenVMS Exchange Utility Manual』やオンライン・ヘルプを参照してください。

9.8.5 EXCHANGE/NETWORKコマンドの使用

DCLのEXCHANGE/NETWORKコマンドを使用すると,OpenVMSのファイル編成をサポートしていないオペレーティング・ システムとファイルの転送を行うことができます。 この転送は,OpenVMSのノードおよびOpenVMS以外のオペレーティング・ システムのノードを接続するDECnet通信リンク上で行われます。

EXCHANGE/NETWORKコマンドを使用すると,次の操作を実行できます。

EXCHANGE/NETWORKコマンドについての詳細は,オンライン・ヘルプまたは『OpenVMS DCL ディクショナリ』を参照してください。

作業方法

EXCHANGE/NETWORKコマンドは,次の形式で実行します。

EXCHANGE/NETWORK入力ファイル指定[,...] 出力ファイル指定

入力ファイル指定 転送される既存ファイル名を指定する。 ワイルドカード文字も使用できる。
出力ファイル指定 入力ファイルを転送する出力ファイル名を指定する。

     $ EXCHANGE/NETWORK MYSYS_FILE.DAT FOO::FOREIGN_SYS.DAT

この例では,現行の省略時の装置およびディレクトリにあるMYSYS_ FILE.DATファイルをOpenVMS以外のノードFOOの FOREIGN_SYS.DATファイルに転送しています。 省略時の設定では,ブロックまたはレコード入出力の転送方法を自動的に選択します。


[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]