如果 /var/tmp 位于临时文件系统上,会出现什么问题?

D.W*_*.W. 10 filesystems directory-structure tmp

我已经读到我不应该将 /var/tmp 挂载为临时文件系统(例如,作为 tmpfs),因为 /var/tmp 中的文件不能在重新启动时删除。那是对的吗?

假设我确实将 /var/tmp 挂载为 tmpfs,因此每次重新启动时都会删除其内容。那会不会很糟糕?如果是,会出现什么问题?会有多糟糕?

小智 13

/var/tmp预计文件在重新启动后将保持不变。来自FHS

/var/tmp 目录可用于需要在系统重新引导之间保留的临时文件或目录的程序。因此,存储在 /var/tmp 中的数据比 /tmp 中的数据更持久。

文件/var/tmp通常是缓存文件或临时文件,在突然断电的情况下不应该消失。但不能指望他们永远活着。这是常见的清除旧文件/var/tmp一个时间表。

以下是 的一些/var/tmp用法示例:

  • vi 的一些实现(例如nvi)将它们的崩溃恢复文件放在/var/tmp. 如果这是一个临时文件系统,您将没有机会恢复任何东西。Vim 将其崩溃恢复文件放在与正在编辑的文件相同的目录中。
  • 我使用了一个 Firefox 插件,它允许我在 Vim 中编辑文本字段。为了实现这一点,插件在/var/tmp(/tmp是默认的) 中创建一个临时文件并将文件传递给 Vim。如果我的计算机在使用此功能时断电,我的写作将安全无虞/var/tmp
  • 文本编辑工具,如exsudoedit把临时文件 /var/tmp。如果/var/tmp作为 tmpfs 挂载,您将面临因意外电源故障而丢失数据的风险。
  • git-archive(1)帮助页下面的例子。

    git archive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/ && tar xf -)
    创建一个包含
    当前分支上最新提交内容的 tar 存档,并将其解压到 /var/tmp/junk 目录中。

    /var/tmp选择该目录可能是为了使提取的存档内容不会因突然断电而丢失。

  • 由于/var/tmp会定期清除但不会意外清除,因此通常将临时日志和测试数据库存储在那里。例如,在arpd 联机帮助页中,/var/tmp为了一些示例,用作测试数据库的位置。

    arpd -b /var/tmp/arpd.db
    启动 arpd 以收集免费的 ARP,但不会干扰内核功能。

总之,如果您/var/tmp作为 tmpfs挂载,您的系统不太可能受到严重损坏 。这样做可能是不可取的,因为您可能会因电源故障和重新启动而丢失信息。

  • @DW 此外,`/var/tmp` 可能比 `/tmp` 大,因此一些应用程序希望将大型临时文件放在那里。如果 `/var/tmp` 在 tmpfs 上,您的系统可能会耗尽内存或开始抖动。 (2认同)