关于Linux /tmp临时目录,你需要知道的一些事儿

如果你想了解关于linux是如何管理临时文件的,这篇文章你需要读一读。

什么是linux /tmp临时文件目录?

linux的/tmp目录中保存了linux操作系统和其他正在执行的应用层软件需要的一些临时文件。
比如,当你编写某个文档的时候,文档的内容实际上是先以临时文件的方式保存在/tmp目录中的。当你将文档保存之后,它才以文件的方式保存到你制定的位置里,而/tmp目录中的临时文件,在你关闭这片文档的时候,就会被移除。

/tmp目录和/var/tmp目录有什么不同?

/tmp目录和/var/tmp目录都被操作系统和应用软件存储临时文件,最大的不同是两个目录中临时文件的有效期不同。保存在/var/tmp目录中的临时文件,有效期更久。
默认情况下,/var/tmp目录中临时文件的有效期为30天,/tmp目录中的临时文件有效期为10天。
还有就是,/tmp目录中的临时文件,当系统重启的时候就会被清理一次。而/var/tmp目录中的临时文件,在系统重启的时候不会被清理。

Ubuntu的临时文件目录,更多规则参考这里:http://manpages.ubuntu.com/manpages/bionic/man5/tmpfiles.d.5.html

linux /tmp目录会被填满吗?

虽然/tmp临时文件目录中的文件可能只有几KB大小,但是/tmp目录还是有被打满的可能的。
对于一般的操作系统而言,如果想填满整个/tmp目录,可能得需要上百万个临时文件。但是如果你的机器上只运行着单个用户,并且机器会时常重启,那么你无需担心/tmp路径会被打满,因为每次系统重启,都会对/tmp路径进行清理。
如果你是一个服务器的管理员,这台服务器又运行着成百上千个其他用户,那么临时目录被填满的可能就会大大增加。越来越多的临时文件,会慢慢填满整个磁盘空间,最终会影响整个服务器的稳定。

/tmp临时文件如何删除?

除非你对于linux临时文件特别了解,否则不建议你删除/tmp路径中的临时文件。这些临时文件,对于正在执行的系统软件和应用软件都很重要,删除它们,可能会导致系统崩溃。由于每次重启,操作系统都会自动清理/tmp目录,所以一般情况下,你无需手动删除它们。
正如之前提到的,如果你维护的是长时间不重启的服务器,那么清理临时文件还是有必要的,但是还是建议你在删除它们之前,必须对临时文件做深入了解。

如何正确的删除临时文件,维护/tmp目录

在对/tmp目录做操作之前,你需要考虑两件事。①如何确定哪些文件可以被删除,删除它们不会影响应用程序的正常执行;②应该自动化地去清理/tmp目录,而非手动删除。
基于以上两点,最佳的清理临时文件的方式是写一个清理脚本,并且使用crontab定时执行。比如,你想删除/tmp目录下,近三天未被使用的临时文件。你应该先把删除的规则通知服务器上的其他用户,让他们调整机器的使用计划,以防产生冲突。下一步,写一个脚本,找到三天内未被使用的文件,脚本如下:

    find /tmp -type f \( ! -user root \) -atime +3

上面的脚本会找到非root用户的三天内未被访问的文件,下一步就是删除动作。

    find /tmp -type f \( ! -user root \) -atime +3 -delete

把上面的脚本写入到shell文件中,命名为tmp.cleanup.sh,然后配置到crontab任务中即可。

    0**/6** /opt/scripts/tmp.cleanup.sh

上面的配置,每6个小时就会执行一次清理脚本;当然具体的执行频率,可根据实际情况调整。

误删除了/tmp根目录,怎么办?

如果不小心删除了/tmp根路径,可以再手动创建,但是里面的临时文件可能很难找回来了。

    sudo mkdir /tmp
    sudo chmod 1777 /tmp

手动创建了/tmp目录,调整好权限之后,重启系统。

最后

上面的内容简单介绍了一些/tmp目录的知识,更多内容,下次再聊。

文章翻译自:https://www.fosslinux.com/41739/linux-tmp-directory-everything-you-need-to-know.htm

发表评论

您的电子邮箱地址不会被公开。

(Spamcheck Enabled)