如何在Linux中自动删除或清理/tmp文件夹内容?

时间:2023-03-08 18:58:16
每个Linux系统都有一个名为的目录/tmp,该目录已挂载了单独的文件系统。



它具有称为tmpfs的特殊文件系统。这是一个虚拟文件系统,操作系统将在系统引导时自动挂载/tmp挂载点。



如果要根据应用程序要求分别挂载/tmp目录。



是的,您可以挂载它,并且应该将其添加到/etc/fstab文件中。



/tmp目录是一个目录,用于在应用程序运行时保存临时文件(或会话文件)。



这些临时文件的处理完成后,它们将由应用程序自动删除。



默认情况下,仅在系统启动或重新引导时清理/tmp目录。



默认情况下,完成处理后,应用程序会自动从此目录中删除其内容。但是某些应用程序不会执行。



因此,我们需要手动删除这些文件,但是如果我们从此目录中删除一些活动文件,这会导致断开当前已建立的会话的连接。



但是,如果/tmp目录已满,我们需要删除未使用的文件,旧的会话文件或无效的文件,以释放一些磁盘空间。



可以通过使用以下三个选项来实现。



atime: 文件上次访问时间–访问时间显示文件或目录中的数据最后被命令或脚本等任何进程访问的时间。

ctime:文件上次更改时间– ctime显示文件或目录元数据何时更改。这意味着何时更改文件属性(如所有权或组等)。

mtime:文件上次修改时间– mtime显示您修改文件内容或保存文件的时间。除非文件属性被更新,否则大多数情况下ctime和mtime会相同。

方法1:如何使用mtime在Linux中删除早于“ X”天的/tmp文件

这些命令将帮助您删除“ X”天之前的文件。取决于您,如何执行此操作。您可以根据需要使用这些选项。



要使用mtime删除/tmp目录上早于2天的/tmp文件,请运行以下命令。



# find /tmp -type f -mtime +2 -delete;

or

# find /tmp -type f -mtime +2 -exec rm -f {} ;

or

# find /tmp -type f -mtime +2 | xargs rm -f

方法2:如何在Linux中使用atime删除早于“ X”天的/tmp文件

这些命令将帮助您删除“ X”天之前的文件。取决于您,如何执行此操作。您可以根据需要使用这些选项。



要使用atime删除/tmp目录上早于2天的/tmp文件,请运行以下命令。



# find /tmp -type f -atime +2 -delete;

or

# find /tmp -type f -atime +2 -exec rm -f {} ;

or

# find /tmp -type f -atime +2 | xargs rm -f

方法3:如何在Linux中使用ctime删除早于“ X”小时的/tmp文件

要使用ctime删除/tmp目录上早于5个小时的/tmp文件,请运行以下命令。



# find /tmp -type f -mmin -300 -delete;

or

# find /tmp -type f -mmin -300 -exec rm -f {} ;

or

# find /tmp -type f -mmin -300 | xargs rm -f

方法4:如何在Linux中使用Shell脚本删除早于“ X”小时的/tmp文件

以上方法需要人工交互才能执行任务。



但是,我们无法在24/7之前关注这一点。如果您有1000多台服务器,那么解决方案是什么?



它应该通过脚本自动执行。要清理/tmp目录,我们可以编写一个小的Shell脚本。



该脚本将删除5小时之前的/tmp文件。



# vi /opt/script/tmp-cleanup.sh



#!/bin/bash

find /tmp -type f -mmin -300 -exec rm -f {} ;



最后添加一个cronjob以使其自动化。它将每五个小时运行一次。



# crontab -e

0 */5 * * * /bin/bash /opt/script/tmp-cleanup.sh