包含可变数据,如系统日志文件、邮件和打印机假脱机目录,以及瞬态和临时文件。/var 的某些部分在不同的系统之间不可共享。例如,/var/log、/var/lock 和 /var/run。其他部分可能是共享的,特别是 /var/mail、/var/cache/man、/var/cache/fonts 和 /var/spool/news。为什么不把它放在 /usr 中?因为在某些情况下,您可能希望将 /usr 挂载为只读,例如,如果它在 CD 上或在另一台计算机上。“/var”包含可变数据,即系统在运行期间必须能够写入的文件和目录,而 /usr 应该只包含静态数据。某些目录可以放在单独的分区或系统上,例如,为了更轻松地备份,由于网络拓扑或安全考虑。其他目录必须位于根分区上,因为它们对于引导过程至关重要。“可挂载”的目录有:'/home'、'/mnt'、'/tmp'、'/usr' 和 '/var'。对于引导至关重要的目录有:'/bin'、'/boot'、'/dev'、'/etc'、'/lib'、'/proc' 和 '/sbin'。
If /var cannot be made a separate partition, it is often preferable to move / var out of the root partition and into the /usr partition. (This is sometimes done to reduce the size of the root partition or when space runs low in the root partition.) However, /var must not be linked to /usr because this makes separation of /usr and /var more difficult and is likely to create a naming conflict. Instead, link /var to /usr/var. Applications must generally not add directories to the top level of /var. Such directories should only be added if they have some system-wide implication, and in consultation with the FHS mailing list. |
包含各种关键系统文件(如 /etc/shadow、/etc/group、/etc/inetd.conf 和 dpkg.status)的备份的目录。它们通常被重命名为类似 dpkg.status.0、group.bak、gshadow.bak、inetd.conf.bak、passwd.bak、shadow.bak 的名称
旨在用于来自应用程序的缓存数据。此类数据是在本地生成的,是耗时的 I/O 或计算的结果。此数据通常可以重新生成或恢复。与 /var/spool 不同,此处的文件可以删除而不会丢失数据。此数据在应用程序的调用之间以及系统的重启之间保持有效。为缓存数据设置单独目录允许系统管理员设置与其他 /var 目录不同的磁盘和备份策略。
本地生成的字体。特别是,所有由 mktexpk 自动生成的字体都必须位于 /var/cache/fonts 的适当命名的子目录中。
按需格式化的 man 页面的缓存。手册页面的源文件通常存储在 /usr/share/man/ 中;一些手册页面可能附带预格式化的版本,该版本存储在 /usr/share/man/cat* 中(现在这种情况相当罕见)。其他手册页面需要在首次查看时进行格式化;格式化后的版本随后存储在 /var/man 中,以便下一个查看同一页面的人不必等待其格式化(/var/catman 通常以与临时目录相同的方式清理)。
特定于软件包的缓存数据。
WWW 代理或缓存数据。
此目录最终将保存系统崩溃转储。目前,Linux 下不支持系统崩溃转储。然而,开发已经完成,正在等待统一到 Linux 内核中。
数据库存储。
/usr 中与游戏相关的任何可变数据都放在这里。它保存以前在 /usr 中找到的可变数据。静态数据,如帮助文本、关卡描述等,仍然保留在其他地方,例如在 /usr/share/games 中。如发行版 FSSTND 1.2 中所述的 /var/games 和 /var/lib 的分离允许本地控制备份策略、权限和磁盘使用情况,以及允许主机间共享并减少 /var/lib 中的混乱。此外,/var/games 是 BSD 传统上使用的路径。
保存动态数据库/文件,如 rpm/dpkg 数据库和游戏分数。此外,此层次结构还保存与应用程序或系统相关的状态信息。状态信息是程序在运行时修改的数据,并且与一个特定的主机相关。用户永远不需要修改 /var/lib 中的文件来配置软件包的操作。状态信息通常用于在调用之间以及同一应用程序的不同实例之间保留应用程序(或一组相互关联的应用程序)的条件。应用程序(或一组相互关联的应用程序)使用 /var/lib 的子目录来存储其数据。有一个子目录 /var/lib/misc,旨在用于不需要子目录的状态文件;只有当分发版中包含相关应用程序时,才应存在其他子目录。/var/lib/'name' 是必须用于所有分发包支持的位置。当然,不同的分发版可以使用不同的名称。
本地程序(即由系统管理员安装在 /usr/local 中的程序)的可变数据(与远程挂载的“/var”分区相对)。请注意,即使是本地安装的程序,如果适用,也应使用其他 /var 目录,例如 /var/lock。
许多程序遵循一种约定,在 /var/lock 中创建一个锁文件,以指示它们正在使用特定的设备或文件。此目录保存这些锁文件(对于某些设备),并希望其他程序会注意到锁文件,并且不会尝试使用该设备或文件。
锁文件应存储在 /var/lock 目录结构中。用于设备和其他多个应用程序共享的资源的锁文件,例如最初在 /usr/spool/locks 或 /usr/spool/uucp 中找到的串行设备锁文件,现在必须存储在 /var/lock 中。必须使用的命名约定是 LCK..,后跟设备文件的基本名称。例如,要锁定 /dev/ttyS0,将创建文件 LCK..ttyS0。用于此类锁文件内容格式必须是 HDB UUCP 锁文件格式。HDB 格式是将进程标识符 (PID) 存储为十字节 ASCII 十进制数,并带有尾随换行符。例如,如果进程 1230 持有锁文件,它将包含十一个字符:空格、空格、空格、空格、空格、空格、一、二、三、零和换行符。
来自系统和各种程序/服务的日志文件,特别是登录 (/var/log/wtmp,记录所有登录和注销到系统的操作) 和 syslog (/var/log/messages,通常存储所有内核和系统程序消息的地方)。/var/log 中的文件通常会无限增长,可能需要定期清理。现在通常通过诸如 'logrotate' 之类的日志轮换实用程序来管理。此实用程序还允许自动轮换压缩、删除和邮寄日志文件。Logrotate 可以设置为每天、每周、每月或当日志文件达到一定大小时处理日志文件。通常,logrotate 作为每日 cron 作业运行。这是开始排除一般技术问题的好地方。
记录普通用户和系统进程的所有登录和注销。
记录所有尝试的错误登录到系统的操作。通过 lastb 命令访问。
来自各种软件包的调试输出。
内核环形缓冲区。此文件的内容由 dmesg 命令引用。
GDM 日志文件。通常是最后一个 X 日志文件的子集。有关模式详情,请参阅 /var/log/xdm.log。
KDM 日志文件。通常是最后一个 X 日志文件的子集。有关更多详情,请参阅 /var/log/xdm.log。
系统日志。
进程记帐是对进程活动进行簿记。进程活动的原始数据在此处维护。可以使用三个命令来访问此文件的内容:dump-acct、sa(进程记帐摘要)和 lastcomm(列出系统上执行的命令)。
活动用户会话。这是一个数据文件,因此无法正常查看。可以通过 dump-utmp 命令或通过 w、who 或 users 命令创建人类可读的形式。
记录所有已登录和注销系统的用户。last 命令可用于访问此文件的人类可读形式。它还列出每个连接和运行级别更改。
XDM 日志文件。通常是最后一个 X 启动日志的子集,并且鉴于 X 日志能够为我们提供的详细信息,它几乎毫无用处。仅当您有 XDM 特定问题时才查阅此文件,否则只需使用 X 日志文件。
X 启动日志文件。是发现 X 配置问题的绝佳资源。日志文件根据上次使用时间编号。例如,最后一个日志文件将存储在 /var/log/XFree86.0.log 中,下一个日志文件是 /var/log/XFree86.9.log,依此类推。
“系统”日志文件。此文件的内容由 syslogd 守护程序管理,该守护程序通常负责大多数系统上的所有日志操作。
包含用户邮箱文件。邮件文件采用 /var/mail/'username' 的形式(请注意,/var/mail 可能是指向另一个目录的符号链接)。此位置的用户邮箱文件以标准 UNIX 邮箱格式存储。此目录位置的原因是为了使 FHS 与几乎每个 UNIX 实现保持一致(以前位于 /var/spool/mail 中)。此更改对于互操作性非常重要,因为单个 /var/mail 通常在多个主机和多个 UNIX 实现之间共享(尽管存在 NFS 锁定问题)。
/opt 中程序包的可变数据必须安装在 /var/opt/'package-name' 中,其中 'package-name' 是 /opt 中附加软件程序包的静态数据存储的子树的名称,除非被 /etc 中的另一个文件取代。/var/opt/'package-name' 的内部排列没有强制结构。
包含系统服务的进程标识文件 (PID) 和有关系统的其他信息,这些信息在系统下次启动之前有效。例如,/var/run/utmp 包含有关当前登录用户的信息。
保存假脱机文件,例如用于邮件、新闻和打印(lpd)以及其他排队的工作。假脱机文件存储要在当前占用设备的作业完成后或适当的 cron 作业启动后处理的数据。每个不同的假脱机在 /var/spool 下都有自己的子目录,例如,cron 表存储在 /var/spool/cron/crontabs 中。
临时文件,这些文件很大或需要比 /tmp 允许的时间更长的时间存在。(尽管系统管理员可能也不允许 /var/tmp 中存在非常旧的文件。)
BIND 的数据库。Berkeley Internet Name Domain (BIND) 实现了 Internet 域名服务器。BIND 是 Internet 上使用最广泛的名称服务器软件,并由 Internet Software Consortium (www.isc.org) 支持。
NIS(网络信息服务)的数据库。NIS 主要用于让网络中的多台机器共享相同的帐户信息(例如 /etc/passwd)。NIS 以前称为 Yellow Pages (YP)。
为了符合 FSSTND 标准,/var 中需要以下目录或指向目录的符号链接
/var/cache Application cache data /var/lib Variable state information /var/local Variable data for /usr/local /var/lock Lock files /var/log Log files and directories /var/opt Variable data for /opt /var/run Data relevant to running processes /var/spool Application spool data /var/tmp Temporary files preserved between system reboots |
以下几个目录是“保留”的,因为它们不能被某些新应用程序随意使用,因为它们会与历史和/或本地实践冲突。它们是
/var/backups /var/cron /var/msgs /var/preserve |
如果安装了相应的子系统,则 /var 中必须包含以下目录或指向目录的符号链接
account Process accounting logs (optional) crash System crash dumps (optional) games Variable game data (optional) mail User mailbox files (optional) yp Network Information Service (NIS) database files (optional) |