
アプリケーション固有(読み取り/書き込み)データ(ログファイル、構成、および他のアプリケーション固有のメタデータ)を含むシステム全体のディレクトリを作成したいと思います。
Linuxファイルシステムの詳細を読んだ後、使用を検討しましたが、/var/app_name/
一部のサブディレクトリが一時的であることがわかりました(たとえば、、、run
などlog
の再起動後も持続しませんtmp
)。
これはどれほど重要ですか?私は、別のディレクトリ(たとえば/home/app_name/
)を使用する必要がありますか、それとも/var/app_name/
大丈夫ですか?
答え1
~からファイルシステム階層標準:
アプリケーションは通常、/ varの最上位レベルにディレクトリを追加しないでください。そのようなディレクトリは、システム全体に影響を与える場合にのみ追加し、FHSメーリングリストを参照する必要があります。
/etc/app_name/
プログラムの設定ファイルやその他のコンテンツを保存し、/var/log/app_name/
ログファイルを保存するために使用する必要があります。
アプリケーションが使用するデータの場合は、以下を保存できます。
- 永続
/var/lib/app_name/
データとメタデータ /var/cache/app_name/
安全に削除できるすべてのアプリケーションキャッシュ/var/spool/app_name/
処理待ちのデータ
本当に使用しないでください /home/app_name/
ユーザー用に予約されたホームディレクトリアプリケーション名。プログラムを実行する特定のユーザーを作成する必要がある場合は、ここに進みます。
コメントの質問に関して、Linuxはユーザーが入力したすべてのローテーションログを自動的に削除しません/var/log/
。実際、システム管理者は、ログがすべてのスペースを埋めるという正反対の問題に直面することがよくあります。したがって、ログファイルの削除または置換は、カスタムlogrotate
cron操作を介して行われます。
答え2
/var/app_name
名前付きアプリケーションの永続データを保存するために使用するのは安全でなければなりませんapp_name
。
たとえば、現在使用中のシステムでは、PostgreSQLとMySQL(MariaDB)のデフォルトのデータベースディレクトリはです/var/postgresql
。/var/mysql
/var/tmp
一時ファイルにのみ使用する必要がありますが、システムがこのディレクトリを消去する可能性はありません(たとえば、再起動時とは異なります/tmp
)。 /var/run
PIDファイルと名前付きソケットを保存するために最も一般的に使用されます。
私は個人のアカウントディレクトリに最も一般的に関連するものを避けます/home/app_name
。/home
また見なさい:https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
アプリケーションは、設定ファイルをに/etc
、ログファイルをに/var/log
、データをに保存することを選択できます/var/app_name
。上記で例として使用したPostgreSQLとMariaDBでは、システム起動フックを除くすべてを/var
。