7.6. Red Hat OpenShift Service on AWS コンテナー間でのファイルのコピー
Red Hat OpenShift Service on AWS コンテナーでは、oc rsync コマンド (リモート同期) を使用して、ローカルファイルをリモートディレクトリーにコピーしたり、リモートディレクトリーからローカルファイルをコピーしたりできます。
oc rsync コマンドは、クライアントマシンとリモートコンテナー上のローカル Rsync ツールを利用して、データベースアーカイブをバックアップおよび復元目的で Pod との間でコピーしたり、開発デバッグのために実行中の Pod にソースコードの変更をコピーしたりするなどのタスクを実行します。
Rsync ツールがローカルまたはリモートコンテナーに見つからない場合、tar アーカイブがローカルに作成されてコンテナーに送信され、そこで tar ユーティリティーを使用してファイルが抽出されます。リモートコンテナーに tar が存在しない場合、コピーは失敗します。
7.6.1. ファイルをコピーする方法について リンクのコピーリンクがクリップボードにコピーされました!
バックアップや復元のために、データベースアーカイブを Pod 間でコピーするには、oc rsync コマンド (リモート同期) を使用します。また、実行中の Pod がソースファイルのホットリロードをサポートする場合に、ソースコードの変更を開発のデバッグ目的で実行中の Pod にコピーするためにも、oc rsync を使用できます。
$ oc rsync <source> <destination> [-c <container>]
oc rysnc コマンドを使用する際は、以下の要件に注意してください。
- Copy Source の指定
oc rsyncコマンドのソース引数はローカルディレクトリーまた Pod ディレクトリーのいずれかを示す必要があります。個々のファイルはサポートされていません。Pod ディレクトリーを指定する場合、ディレクトリー名の前に Pod 名を付ける必要があります。
<pod name>:<dir>ディレクトリー名がパスセパレーター (
/) で終了する場合、ディレクトリーの内容のみが宛先にコピーされます。それ以外の場合は、ディレクトリーとその内容が宛先にコピーされます。- Copy Destination の指定
-
oc rsyncコマンドの宛先引数はディレクトリーを参照する必要があります。ディレクトリーが存在せず、rsyncがコピーに使用される場合、ディレクトリーが作成されます。 - 宛先でのファイルの削除
-
--deleteフラグを使用すると、リモートディレクトリーにあるファイルのうち、ローカルディレクトリーに存在しないファイルをすべて削除できます。 - ファイル変更に関する継続的な同期
--watchオプションを使用すると、コマンドはソースパスでファイルシステムの変更をモニターし、変更が生じるとそれらを同期します。この引数を使用すると、コマンドは継続的に実行されます。同期は短い非表示期間の後に実行され、急速に変化するファイルシステムによって同期呼び出しが継続的に実行されないようにします。
--watchオプションを使用する場合、動作は通常oc rsyncに渡される引数の使用を含めoc rsyncを繰り返し手動で起動する場合と同様になります。そのため、--deleteなどのoc rsyncの手動の呼び出しで使用される同じフラグでこの動作を制御できます。