一般的な使い方では、設定が終わると、CacheFS ソフトウェアは、ユーザーが要求しなくても自動的に適切な動作をします。最近使用されたファイルがキャッシュされます。「パッキング」機能を使用するとキャッシュ内で、特定のファイルまたはディレクトリを常に最新の状態で保持できるので、より積極的にキャッシュを管理できます。
cachefspack コマンドを使用すると、キャッシュにロードするファイルとディレクトリを指定できます。このコマンドは、これらのファイルのコピーがキャッシュで利用できることを保証します。
パッキングリストには、特定のファイル名やディレクトリ名が入っています。ほかのパッキングリストを入れることも可能です。この機能によって、たくさんの項目をキャッシュにパックする場合に、個々のファイルやディレクトリを指定する手間が省けます。
次のように、-h オプションを使用すると、cachefspack のすべてのオプションの簡単なヘルプ情報を出力できます。
$ cachefspack -h Must select 1 and only 1 of the following 5 options -d Display selected filenames -i Display selected filenames packing status -p Pack selected filenames -u Unpack selected filenames -U Unpack all files in directory 'dir' -f Specify input file containing rules -h Print usage information -r Interpret strings in LIST rules as regular expressions -s Strip './' from the beginning of a pattern name -v Verbose option files - a list of filenames to be packed/unpacked |
$ cachefspack -p filename |
ファイルまたは複数のファイルをパックすることを示します。このオプションはデフォルトです。
キャッシュにパックするファイルまたはディレクトリの名前を指定します。ディレクトリを指定すると、そのサブディレクトリもすべてパックされます。詳細は、cachefspack(1M) のマニュアルページを参照してください。
次の例は、projects ファイルがキャッシュにパックされることを示しています。
$ cachefspack -p projects |
次の例は、3 つのファイルがキャッシュにパックされることを示しています。
$ cachefspack -p projects updates master_plan |
次の例は、ディレクトリがキャッシュにパックされることを示しています。
$ cachefspack -p /data/abc/bin |
$ cachefspack -i[v] cached-filename-or-directory |
パックされたファイルの情報を表示することを示します。
詳細表示オプションです。
情報を表示するファイル名またはディレクトリ名を指定します。
次の例は、doc_file ファイルが正常にパックされていることを示しています。
$ cachefspack -i doc_file cachefspack: file doc_file marked packed YES, packed YES |
次の例では、/data/abc ディレクトリに bin サブディレクトリがあります。bin サブディレクトリには、 big、medium、および small という 3 つのファイルがあります。big と small ファイルはパックするように指定されていますが、パックされていません。medium ファイルは正常にパックされています。
$ cd /data/abc $ cachefspack -i bin . . . cachefspack: file /bin/big marked packed YES, packed NO cachefspack: file /bin/medium marked packed YES, packed YES cachefspack: file /bin/small marked packed YES, packed NO . . . |
-iv オプションを指定した場合は、指定したファイルまたはディレクトリがキャッシュからフラッシュされたかどうかに関する追加情報が表示されます。次に例を示します。
$ cd /data/bin FSCACHEPACK-4$ cachefspack -iv bin . . . cachefspack: file /bin/big marked packed YES, packed NO, nocache YES cachefspack: file /bin/medium marked packed YES, packed YES, nocache NO cachefspack: file /bin/small marked packed YES, packed NO nocache NO . . . |
上記例の最後の行は、ディレクトリの内容がキャッシュからフラッシュされていないことを示しています。
cachefspack コマンドの機能の 1 つに、パッキングリストを作成するという機能があります。
パッキングリストには、キャッシュにパックするファイルやディレクトリが入っています。ディレクトリがパッキングリストに入っている場合、そのサブディレクトリとファイルもすべてパックされます。
この機能によって、キャッシュにパックする各ファイルをそれぞれ指定するという手間が省けます。
vi を使ってパッキングリストファイルを作成する
パッキングリストファイルの書式は、filesync コマンドで使用する書式と同じです。詳細は、filesync(1) のマニュアルページを参照してください。
パッキングリストには、次の 2 つの機能があります。
パッキングリスト内のファイルを文字どおりのファイル名ではなく、正規表現として識別することができるため、ファイル名を個別に指定する必要がありません。
所有するファイルだけがパックされるようにすることで、共有ディレクトリのファイルをパックできます。
これらの機能の使い方については、cachefspack(1M) のマニュアルページを参照してください。
次の例は、パッキングリストファイルの内容を示しています。
BASE /home/ignatz LIST plans LIST docs IGNORE *.ps |
BASE 文は、パックする項目が存在するディレクトリのパスを指定しています。
2 つの LIST 文は、当該ディレクトリ中のパックされるファイルを指定しています。
IGNORE 文は、パックしないファイルタイプ (ここでは .ps) を指定しています。
パッキングリストにファイルをパックする
$ cachefspack -f packing-list |
パッキングリストを使用することを指定します。
パッキングリスト名を指定します。
この例では、list.pkg ファイルを cachefspack コマンドのパッキングリストとして使用しています。
$ cachefspack -f list.pkg |
キャッシュからファイルを削除、つまりそのパッキングを「解除」する場合もあります。ほかよりも優先度が高いファイルまたはディレクトリがいくつか存在する場合があるため、重要でないファイルのパッキングを解除する必要があります。たとえば、あるプロジェクトを終了して、そのプロジェクトに関連するファイルをアーカイブしたと仮定します。次は、新しいプロジェクト、つまり新しいファイルのセットで作業することになります。
キャッシュからファイルまたはパッキングリストのパッキングを解除します。
$ cachefspack -u filename | -U cache-directory |
ファイルまたは複数のファイルのパッキングを解除することを示します。このオプションを使用する場合は、ファイル名を指定しなければなりません。
キャッシュからパッキングを解除するファイルまたはパッキングリストの名前を示します。
キャッシュ中のすべてのファイルのパッキングを解除することを示します。
詳細は、cachefspack(1M) のマニュアルページを参照してください。
次の例は、キャッシュから /data/abc/bin/big ファイルのパッキングが解除されることを示しています。
$ cachefspack -u /data/abc/bin/big |
次の例は、キャッシュから 3 つのファイルのパッキングが解除されることを示しています。
$ cd /data/abc/bin/big $ cachefspack -u big small medium |
次の例は、パッキングリストのパッキングを解除する方法を示しています。パッキングリストは、ファイルのディレクトリへのパスを含むファイルです。
$ cachefspack -uf list.pkg |
次の例は、キャッシュディレクトリ中のすべてのファイルのパッキングが解除されるように -U オプションを使用する方法を示しています。
$ cachefspack -U /local/mycache |
ファイルシステムを 1 つもマウントしていないキャッシュのパッキングは解除できません。-U オプションで、マウント済みファイルシステムを持っていないキャッシュを指定した場合、次のような出力が表示されます。
$ cachefspack -U /local/mycache cachefspack: Could not unpack cache /local/mycache, no mounted filesystems in the cache. |
cachefspack コマンドを使用すると、次のようなエラーメッセージが表示されることがあります。
cachefspack: pathname - can't open directory: permission denied |
ファイルまたはディレクトリにアクセスするための正しいアクセス権を持っていません。
適切なアクセス権を取得してください。
cachefspack: pathname - can't open directory: no such file or directory |
ファイルまたはディレクトリの指定が間違っている可能性があります。
入力ミスがないか確認してください。
cachefspack: pathname - can't open directory: stale NFS file handle |
アクセスしようとしたときに、ファイルまたはディレクトリがサーバーから移動または削除されていた可能性があります。
サーバー上のファイルやディレクトリにまだアクセスできることを確認してください。
cachefspack: pathname - can't open directory: interrupted system call |
コマンドの実行中に間違って Control + C を押した可能性があります。
このコマンドを再度実行してください。
cachefspack: pathname - can't open directory: I/O error |
ハードウェアの障害の可能性があります。
ハードウェアの接続を確認してください。
cachefspack: error opening dir |
ファイルまたはディレクトリの指定が間違っている可能性があります。ファイル書式中の BASE コマンドの後に指定したパスが、ディレクトリではなくファイルになっている可能性があります。指定するパスはディレクトリでなければなりません。
入力ミスがないか確認してください。ファイル書式中の BASE コマンドの後に指定したパスを確認してください。ファイルではなくディレクトリが指定されていることを確認してください。
cachefspack: unable to get shared objects |
実行可能ファイルが壊れているか、その形式を認識できません。
実行可能ファイルを交換してください。
cachefspack: filename - can't pack file: permission denied |
ファイルまたはディレクトリにアクセスするための正しいアクセス権を持っていません。
適切なアクセス権を取得してください。
cachefspack: filename - can't pack file: no such file or directory |
ファイルまたはディレクトリの指定が間違っている可能性があります。
入力ミスがないか確認してください。
cachefspack: filename- can't pack file: stale NFS file handle |
アクセスしようとしたときに、ファイルまたはディレクトリがサーバーから移動または削除されていた可能性があります。
サーバー上のファイルやディレクトリにまだアクセスできることを確認してください。
cachefspack: filename- can't pack file: interrupted system call |
コマンドの実行中に間違って Control + C を押した可能性があります。
このコマンドを再度実行してください。
cachefspack: filename- can't pack file: I/O error |
ハードウェアの障害の可能性があります。
ハードウェアの接続を確認してください。
cachefspack: filename- can't pack file: no space left on device. |
キャッシュのディスク容量が不足しています。
ディスク容量を増やしてキャッシュのサイズを大きくする必要があります。
cachefspack: filename - can't unpack file: permission denied |
ファイルまたはディレクトリにアクセスするための正しいアクセス権を持っていません。
適切なアクセス権を取得してください。
cachefspack: filename - can't unpack file: no such file or directory |
ファイルまたはディレクトリの指定が間違っている可能性があります。
入力ミスがないか確認してください。
cachefspack: filename- can't unpack file: stale NFS file handle |
アクセスしようとしたときに、ファイルまたはディレクトリがサーバーから移動または削除されていた可能性があります。
サーバー上のファイルやディレクトリにまだアクセスできることを確認してください。
cachefspack: filename- can't unpack file: interrupted system call |
コマンドの実行中に間違って Control + C を押した可能性があります。
このコマンドを再度実行してください。
cachefspack: filename- can't unpack file I/O error |
ハードウェアの障害の可能性があります。
ハードウェアの接続を確認してください。
cachefspack: only one `d', `i', `p', or `u' option allowed |
コマンドに対して上記オプションのうち複数のオプションが指定されています。
オプションは 1 つだけ選択してください。
cachefspack: can't find environment variable. |
構成ファイル中で $ で指定されている環境変数を設定していません。
環境変数を適切な場所に定義してください。
cachefspack: skipping LIST command - no active base |
LIST コマンドが構成ファイル内にありますが、対応する BASE コマンドがありません。
BASE コマンドを定義してください。