关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

Linux服务器中tmp临时目录相关信息学习

发布时间:2023/11/20 15:01:33
香港云服务器

基于Linux的系统中/tmp目录包含系统以及服务器上运行的其他软件和应用程序临时需要的必要文件。

例如,当您编写文档时,该文档中的所有内容都保存为/ tmp目录中的临时文件。保存后,它会存储在您的首选位置,并且在退出文档后便会删除临时文件。

1、/tmp目录和/var/tmp目录有什么区别?

/tmp和/var/tmp都被程序和系统本身用来临时存储数据。然而,关键的区别在于数据在这些文件系统中存储的时间。/var/tmp的数据保存期比/tmp目录的数据保存期要长得多。

默认情况下,所有存储在/var/tmp中的文件和数据最多可以保存30天。而在/tmp中,数据会在十天后自动删除。

此外,任何存储在/tmp目录下的临时文件都会在系统重启后立即被删除。因此,/var/tmp目录被程序用来存储需要在重启之间暂时保存的数据。

2、Linux的/tmp目录会不会被填满?

存储在/tmp目录下的文件和数据只有几KB大小。尽管有可能,但/tmp目录被填满是值得怀疑的。

对于一个普通的系统来说,需要有上百万个临时文件存储在/tmp目录中才能填满它。如果你运行的是一个经常被关闭的单用户系统,这不应该是你应该担心的事情,因为重启系统会删除所有存储在/tmp目录下的文件。

但是,如果你是一个系统管理员,运行的服务器很少被重启,并且托管了成千上万的用户,那么/tmp目录被填满就是一个实际问题。

随着更多的临时文件堆积在目录中,它将慢慢吞噬所有的存储空间,这对整个系统的健康来说是一个可怕的消息。

3、如何删除存放在/tmp目录里面的文件?

除非你知道自己在做什么,否则不建议你到处去删除/tmp目录里面的文件。这些文件很重要,是你系统上运行的软件所需要的。删除它们有可能导致系统崩溃。由于/tmp目录中存储的文件和数据会在系统重启后自动删除,所以你不需要主动担心。

然而,正如前面所讨论的那样,对于连续运行数月的服务器来说,有必要在它淹没/tmp目录之前不时地清理临时文件。为此,我们鼓励你采取更系统的方法,而不是一下删除所有的/tmp文件。

在这里,我们整理了一份关于如何正确管理Linux /tmp目录的详细解读,以帮助系统管理员。

4、删除临时文件和管理Linux /tmp目录的正确方法

在尝试管理Linux /tmp目录时,你需要考虑两件事。首先,你需要知道如何确定要从/tmp目录中删除哪些文件,因为随意删除文件会干扰用户的活动。

其次,你需要有一种方法来自动完成/tmp目录的清理过程,因为要手动搜索和常规删除临时文件是不可能的。

考虑到这两点,最完美的解决方案就是定期使用crontab部署用户文件管家脚本。例如,假设你想例行地删除所有存储在/tmp目录下的、最近三天没有使用过的用户文件。

那么,你可以通过首先通知服务器上的用户关于你的新的临时文件删除策略来实现这一目标,这样他们就可以相应地修改他们的使用活动。接下来,你需要写一个脚本,帮助你找到所有这些文件。

这是您可以尝试的示例:

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

上面的脚本将查找最近三天未访问的所有/ tmp文件,但将排除root用户拥有的所有文件。要删除所有这些文件,您只需要对上述脚本进行一点编辑即可:

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

要定期运行此脚本,您需要将以上文本复制到文件中并使其可执行。对于本教程,我们将创建文件tmp.cleanup.sh。

接下来,我们将设置一个crontab命令,该命令每6小时执行一次脚本。为此,首先在终端中输入以下命令:

$ crontab -e

这将在编辑器中打开crontab文件。接下来,您需要将给定命令复制并粘贴到编辑器中,然后保存并退出。

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

这将每6小时在/opt/scripts/tmp.cleanup.sh中运行一次脚本,因此您不必担心/tmp目录被淹没并耗尽系统存储空间。

当然,您可以随意对crontab进行编程,以在所需的任何定期间隔内执行脚本。这是有关如何创建crontab命令以帮助您的深入指南。

5、我不小心删除了/tmp目录,怎么办?

在手动删除/ tmp文件的过程中,某些用户意外地最终删除了/ tmp目录本身。这样的混乱可以而且确实会发生。但是,您可以使用上述方法快速恢复已删除的/ tmp目录。

您需要做的就是在终端中输入以下命令:

$ sudo mkdir /tmp

$ sudo chmod 1777 /tmp

第一行创建一个新的/tmp目录。第二行给予所有用户(所有者,组和其他)访问和许可,以读取,写入和运行/tmp目录中的文件。

接下来,您可以输入此命令来检查/tmp目录的所有权限,以确保所有用户都可以使用它。

$ ls -ld/tmp

检查一切正常后,您将需要重新启动系统。这将确保程序使用新创建的/tmp目录启动。

以上这些您需要了解的有关Linux / tmp目录的所有信息。