定期清除用于开发的 tmp 目录?

定期清除用于开发的 tmp 目录?

据我所知,/tmp每次启动时都会被清除,因为它通常使用tmpfs,这基本上是 RAM。

在 ML 应用程序的开发过程中,我经常需要一个 tmp 目录来进行调试和执行其他操作不是填满我的RAM,但存储在硬盘上。目前我的脚本会自动清除这些目录,但这不是最好的解决方案:有时我忘记调用清理,有时脚本清理得太早,等等......

硬盘上是否已经有一些 tmp 目录在每次启动时都会被清理?如果没有,创建这样一个目录并确保每次启动时都会清理它的最简单方法是什么?

编辑:我在内核 4.14 上使用 Manjaro (Arch Linux) 和 i3wm。

答案1

您可以在配置文件中添加一个条目/etc/tmpfiles.d(如拱门维基):

/etc/tmpfiles.d/tmp.conf(来自维基百科)

# see tmpfiles.d(5)
# always enable /tmp folder cleaning
D! /tmp 1777 root root 0

# remove files in /var/tmp older than 10 days
D /var/tmp 1777 root root 10d

# namespace mountpoints (PrivateTmp=yes) are excluded from removal
x /tmp/systemd-private-*
x /var/tmp/systemd-private-*
X /tmp/systemd-private-*/tmp
X /var/tmp/systemd-private-*/tmp

wiki 中的文件假定您已禁用/tmp挂载并希望偶尔tmpfs清除。/var/tmp根据您的需要,您可以更改这些以满足您的要求:

/etc/tmpfiles/vartmp.conf

# This may be all that you require if you're not changing anything else
D /path/to/my/tmp - app_owner app_group 0

看一眼文档tmpfiles.d (5)了解更多信息。

相关内容