Linux の運用と保守のプロセスでは、事前の計画なしにアプリケーションの保存ディレクトリがいっぱいになり、ディレクトリやディスクを拡張できないことがよくあります。このときの一般的な解決策は、ソフト リンクは、ln を介して、最初に保存されていたディレクトリを別の大きなディスク内のディレクトリにソフト リンクして、目的を達成します。
ソフトリンクのデメリットは、ソフトリンクを何重にも重ねるとスタン状態になってしまい誤動作を起こしやすいことです。今日はその方法を紹介します
マウントコマンドの運用保守仲間ならよく知っているはずなので、あまり紹介しません
まず man の導入部分を見てみましょう
mount –bind を使用してファイル ディレクトリ構造を再マウントし、2 つのディレクトリを接続できます。前のディレクトリを後のディレクトリにマウントします。後のディレクトリへのすべてのアクセスは、実際には前のディレクトリへのアクセスです。ディレクトリへのアクセス
#########例#########mount –bind を使用して test1 を test2 にマウントし、inode とディレクトリの内容を再確認します
inode 番号とファイルが両方とも test1
であることがわかります。 次に、test2 ディレクトリ内のファイルにアクセスして変更します。実際、変更されるのは test1 ディレクトリです。このテストでは、test2 ディレクトリにファイルを作成します。マウントに連絡した後、次の 2 つのディレクトリの内容を確認します
test1 ディレクトリは変更された状態のままであり、test2 ディレクトリ ファイルはまだ存在し、変更されていないことがわかります。
#########原理######### mount –bind test1 test2 を例に挙げると、mount –bind コマンドが実行されると、Linux はマウントされたディレクトリのディレクトリ エントリを記録します (はディレクトリ ファイルのブロックでもあり、ディレクトリ ファイルの情報を記録します)。下位ディレクトリ
) シールド、つまり test2 の下位パスが非表示になります (これは非表示であるだけで削除ではないことに注意してください。データは変更されておらず、アクセスできないだけです) 。同時に、カーネルはマウント ディレクトリ (test1) のディレクトリ エントリをメモリ内の s_root オブジェクトに記録します。マウント コマンドが実行されると、VFS は vfsmount オブジェクトを作成します。このオブジェクトには、システム全体のすべてのマウント情報が含まれます。ファイル システム, その中にはこのマウントの情報も含まれます. このオブジェクトは HASH 値対応テーブルです (HASH 値はパス文字列を計算することによって計算されます). このテーブルには 2 つのディレクトリ /test1 から /test1 までの HASH 値の対応関係が含まれています/test2
一時設定ファイル読み込みテスト
一部のアプリケーション シナリオでは、テストのために構成ファイルを変更する必要がありますが、実行中のビジネスに影響を与えることはできません。確信が持てず、元の構成ファイルを直接変更したくない場合は、/tmp で変更できます。およびその他のディレクトリ。テスト構成ファイルを書き込み、それを mount –bind を介して構成ファイル読み取りディレクトリにマウントし、プログラムを実行して一時構成ファイルを読み取ります。テストが完了したら、アンマウントするだけで済みます。元の構成に影響を与える
読み取り専用マウント
一部のシナリオでは、たとえば、開発者に一部の構成を表示する権限を与える必要があるが、構成の変更は許可しない場合は、mount –bind,ro を使用して読み取り専用ディレクトリをマウントできます。書き込み可能でマウント可能です ロードされたディレクトリは読み取り専用です。開発者に読み取り専用のディレクトリ権限を与えるだけで済みます
以上がLinux でファイルを読み取り可能、書き込み可能、読み取り専用にする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。