/var (永続的な可変システムデータ)
/var/cache (キャッシュ)
/var/lib とは対照的に、/var/cache でデータを消去してもデータが失われることはありません。アプリケーションは他のソースから /var/cache データを再構築する必要があるためです。
/var/lib (永続的なシステムデータ)
/var/lib ディレクトリは永続的なシステムデータに使用されます。さまざまなシステムコンポーネントがそのコンポーネント専用のデータをここに配置します。/var/cache とは対照的に、/var/lib のデータを消去すると、データが失われます。
例えば、PostgreSQL データベースサーバーはデータベースデータをデフォルトで /var/lib/pgsql に保存します。このデータのレイアウトとファイル形式は PostgreSQL 固有のものです。また、永続的なデータであり、消去されるとユーザーはデータを失います。
/var/log (永続ログ)
このディレクトリは永続ログの保存に使用されます。ログファイルを /var/log に直接保存するのではなく、ソフトウェアで syslog(3) または sd_journal_print(3) API コールを使用することをお勧めします。
注記
AL2023 ではsystemd ジャーナルによる rsyslog の置き換え はデフォルトの Amazon Linux 2 設定と大きく異なります。
journalctl を使用したログの読み取りの詳細については、journalctl
多くのアプリケーションは、/var/log にあるログファイルを記述したり、ローテーションしたりするために独自の仕組みを使用します。ログファイルの設定方法については、これらのアプリケーションのドキュメントを参照してください。
/var/spool (メールキューとプリンターキュー)
このディレクトリは、メールキューやプリンターキューなどの永続データに使用されます。
/var/tmp (より大きな一時ファイル)
サイズが小さい一時ファイルの場合は、代わりに /tmp を使用する必要があります。
/tmp はデフォルトで tmpfs ボリュームとして設定されていますが、/var/tmp はデフォルトでルートファイルシステムのパスとして定されています。したがって、より大きく永続的な一時ファイルの置き場所となります。デフォルトでは、クリーンアップジョブが定期的に実行され、最近アクセスされていないファイルを削除します。
一時ファイルのクリーンアップを設定する方法については、tmpfiles.d(5) および systemd-tmpfiles(8) man マニュアルページを参照してください。
/tmp と同様に、アプリケーションは /var/tmp よりも $TMPDIR 環境変数で指定されたパスを優先する必要があります。そうすることで、ユーザーは $TMPDIR 環境変数を設定して、アプリケーションが /var/tmp に使用するパスを上書きできます。
警告
/var/tmp は共有されているため (/tmp と同様に)、一時ファイルの作成には安全な方法を使用することが重要です。詳細については、「/tmp と /var/tmp の安全な使用systemd ドキュメントを参照してください。
注記
systemd サービスについては、PrivateTmp= ディレクティブを yes または disconnected に設定して構成するのがベストプラクティスです。これによりサービスはサンドボックス内で実行され、その中では /tmp と /var/tmp はホストや他のサービスとは共有されません。
同じプライベート一時ディレクトリを共有するように 2 つのサービスを設定する方法などの詳細については、systemd.exec(5) man ページを参照してください。
/tmp パスと /var/tmpパスは密接に関連しており、異なる目的のために存在します。