/var(持久性变量系统数据)
/var/cache(缓存)
与 /var/lib 不同,删除 /var/cache 中的数据不会导致数据丢失,因为要求应用程序能够从其他来源重建其 /var/cache 数据。
/var/lib(持久性系统数据)
/var/lib 目录用于持久性系统数据。各种系统组件会将其私有数据放置于此。与 /var/cache 不同,删除 /var/lib 中的数据将导致数据丢失。
例如,PostgreSQL 数据库服务器默认将数据库数据存储在 /var/lib/pgsql 中。此数据的布局和文件格式是 PostgreSQL 私有的,并且是持久性数据,因为如果被擦除,用户将经历数据丢失。
/var/log(持久性日志)
此目录用于存储持久性日志。建议软件使用 syslog(3) 或 sd_journal_print(3) API 调用,而不是直接在 /var/log 下存储日志文件。
注意
在 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 一样,应用程序应优先使用 $TMPDIR 环境变量中指定的路径,而非 /var/tmp。然后用户可以设置 $TMPDIR 环境变量来覆盖应用程序应用于 /var/tmp 的路径。
警告
由于 /var/tmp 是共享的(/tmp 也是如此),因此使用安全的方法创建临时文件非常重要。有关详细信息,请参阅上游关于安全使用 /tmp 和 /var/tmpsystemd 文档。
注意
最佳实践是为 systemd 服务配置 PrivateTmp= 指令设置为 yes 或 disconnected,这将在沙盒中运行服务,其中 /tmp 和 /var/tmp 不与主机或其他服务共享。
更多信息,包括如何配置两个服务以共享相同的私有临时目录,请参阅 systemd.exec(5) man 页面。
/tmp 和 /var/tmp 路径密切相关,但存在的目的不同。