Rain WikiWindows · Linux · Android

/tmp 和临时文件

系统文件夹所有 Linux 发行版可安全删除: 部分

/tmp 是程序仅需短时间使用的临时文件的目录。/var/tmp 用于应在重启后保留的临时文件。在许多发行版中,/tmp 会在开机时清空或作为内存中的 tmpfs,并且两者中的过期文件都由 systemd-tmpfiles 删除。

1/tmp 与 /var/tmp

文件系统层次结构标准(Filesystem Hierarchy Standard)规定,程序不得假定 /tmp 中的文件在程序运行之间得以保留,而 /var/tmp 在重启后会保留。两者均可由所有用户写入并带有粘滞位(sticky bit),因此用户只能删除自己的文件。

2自动清理

systemd-tmpfiles 从 tmpfiles.d 目录(例如 /usr/lib/tmpfiles.d/tmp.conf)读取规则,该规则通常为 /tmp 设置 10 天的保留期限,为 /var/tmp 设置 30 天的保留期限。清理工作通过 systemd-tmpfiles-clean.timer 每日运行。

3tmpfs

当 /tmp 挂载为 tmpfs 时,其文件驻留在内存(RAM)和交换分区(swap)中,并在每次重启时消失。findmnt /tmp 显示它是否为 tmpfs。

如何检查和清理 /tmp

  1. 检查其大小:sudo du -sh /tmp /var/tmp
  2. 查看它是否在内存中:findmnt /tmp
  3. 立即运行配置好的清理:sudo systemd-tmpfiles --clean
  4. 在手动删除任何内容之前列出旧文件:sudo find /tmp -type f -atime +10

注意事项

  • 删除正在运行的程序仍在使用中的 /tmp 中的文件可能会导致其失败;请优先使用 systemd-tmpfiles 清理或重启。
  • 不要删除正在运行的服务的套接字和锁文件。

资料来源

  1. tmpfiles.d(5) 手册页 man7.org
  2. 文件系统层次结构标准 3.0:/tmp refspecs.linuxfoundation.org

说明: RainServer 为 Linux 服务器提供监控和安全清理功能;它会显示将要发生的变化并首先进行询问。

最后审核: