在 Ubuntu Server 22.04 上,我安装了一个 SSD /scratch
。我/tmp
用符号链接替换了 ,/scratch/tmp
以便将临时文件存储在 SSD 上:
$ ls -l /tmp
lrwxrwxrwx 1 root root 12 Jan 13 16:22 /tmp -> /scratch/tmp
似乎运行良好,但有一个问题:/tmp
重启后,内容不再被删除,正如我所期望的那样。我该如何实现这一点?
答案1
systemd-tmpfiles
Ubuntu 中的临时文件由相关服务清理/lib/systemd/system/systemd-tmpfiles-clean.service
,这些文件的配置可以在其中进行配置/etc/tmpfiles.d/*.conf
(另请参阅这个答案)。
要包含您描述的目录,请创建一个配置文件:
sudo touch /etc/tmpfiles.d/scratch-tmp.conf
然后将以下内容包含在其中:
# Type Path Mode User Group Age Argument
e /scratch/tmp - - - 20m
类型e
定义这是一个已存在但应清除的“标记”目录。年龄设置为20m
将清除所有超过 20 分钟的文件(见下文说明)。
如果类型为d
,则如果目录不存在则会创建该目录,并在重启时和每天清理该目录。
请注意,触发该服务的计时器(位于/lib/systemd/system/systemd-tmpfiles-clean.timer
)设置为运行 15 分钟后启动,因此直到正常运行 15 分钟后您才会看到重新启动时的实际效果。
请参阅手册页tmpfiles.d
了解更多信息。