

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# `/var`（持久性变量系统数据）
<a name="filesystem-slash-var"></a>

 

## `/var/cache`（缓存）
<a name="filesystem-slash-var-cache"></a>

 与 [`/var/lib`](#filesystem-slash-var-lib) 不同，删除 `/var/cache` 中的数据不会导致数据丢失，因为要求应用程序能够从其他来源重建其 `/var/cache` 数据。

## `/var/lib`（持久性系统数据）
<a name="filesystem-slash-var-lib"></a>

 `/var/lib` 目录用于持久性系统数据。各种系统组件会将其私有数据放置于此。与 [`/var/cache`](#filesystem-slash-var-cache) 不同，删除 `/var/lib` 中的数据将导致数据丢失。

 例如，PostgreSQL 数据库服务器默认将数据库数据存储在 `/var/lib/pgsql` 中。此数据的布局和文件格式是 PostgreSQL 私有的，并且是持久性数据，因为如果被擦除，用户将经历数据丢失。

## `/var/log`（持久性日志）
<a name="filesystem-slash-var-log"></a>

 此目录用于存储持久性日志。建议软件使用 `syslog(3)` 或 `sd_journal_print(3)` API 调用，而不是直接在 `/var/log` 下存储日志文件。

**注意**  
 在 AL2023 中，[`systemd` 日志取代 `rsyslog`](journald.md)，这与默认的 Amazon Linux 2 配置有显著差异。

 有关使用 `journalctl` 读取日志的更多信息，请参阅 [https://www.freedesktop.org/software/systemd/man/journalctl.html](https://www.freedesktop.org/software/systemd/man/journalctl.html) 手册页。

 许多应用程序使用自己的机制来写入（有时还会轮换）位于 `/var/log` 中的日志文件。有关如何配置其日志文件，请参阅这些应用程序的文档。

## `/var/spool`（邮件和打印机队列）
<a name="filesystem-slash-var-spool"></a>

 此目录用于存储持久性数据，例如邮件或打印队列。

## `/var/tmp`（较大的临时文件）
<a name="filesystem-slash-var-tmp"></a>

 对于小型、大小受限的临时文件，可能应改用 [`/tmp`](filesystem-slash-tmp.md)。

 虽然 [`/tmp`](filesystem-slash-tmp.md) 默认配置为 `tmpfs` 卷，但 `/var/tmp` 默认配置为根文件系统上的一个路径，因此是存放较大且更持久临时文件的地方。默认情况下，会定期运行清理作业，删除最近未访问的文件。

 有关如何配置临时文件清理的信息，请参阅 `tmpfiles.d(5)` 和 `systemd-tmpfiles(8)` 的 man 手册页。

 与 [`/tmp`](filesystem-slash-tmp.md) 一样，应用程序应优先使用 `$TMPDIR` 环境变量中指定的路径，而非 `/var/tmp`。然后用户可以设置 `$TMPDIR` 环境变量来覆盖应用程序应用于 `/var/tmp` 的路径。

**警告**  
 由于 `/var/tmp` 是共享的（[`/tmp`](filesystem-slash-tmp.md) 也是如此），因此使用安全的方法创建临时文件非常重要。有关详细信息，请参阅上游关于[安全使用 `/tmp` 和 `/var/tmp`](https://systemd.io/TEMPORARY_DIRECTORIES/) 的 `systemd` 文档。

**注意**  
 最佳实践是为 `systemd` 服务配置 `PrivateTmp=` 指令设置为 `yes` 或 `disconnected`，这将在沙盒中运行服务，其中 [`/tmp`](filesystem-slash-tmp.md) 和 [`/var/tmp`](#filesystem-slash-var-tmp) 不与主机或其他服务共享。  
 更多信息，包括如何配置两个服务以共享相同的私有临时目录，请参阅 `systemd.exec(5)` man 页面。

 [`/tmp`](filesystem-slash-tmp.md) 和 [`/var/tmp`](#filesystem-slash-var-tmp) 路径密切相关，但存在的目的不同。