如果/ var / tmp在临时文件系统上,怎么办?


8

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

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


@JMoore,我在问/var/tmp,不是在问/tmp。如果还不清楚,我表示歉意。
DW

Answers:


11

/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 挂载,则系统不太可能遭受严重损坏 。这样做可能是不可取的,尽管您可能会因电源故障和重启而丢失信息。



谢谢。我已经阅读了FHS规范,并且了解到原则上应用程序可以使用/ var / tmp来存储内容-我对特定示例在实践中可能会产生问题感到更加好奇。
DW

@DW:我将提供更多示例。

2
@DW也/var/tmp可能大于/tmp,因此某些应用程序希望在其中放置较大的临时文件。如果/var/tmp在tmpfs上,则系统可能内存不足或开始崩溃。
吉尔(Gilles)'所以
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.