当前位置: 首页 > 科技观察

如何使用Tmpwatch-Tmpreaper删除旧文件

时间:2023-03-16 10:20:50 科技观察

您可能忘记删除计算机目录中不再需要的文件。这可以是“下载”或任何其他目录。它可能已经增长了一段时间。即使你有足够的存储空间,你也应该删除它们,因为这会在列出文件时减慢你的系统。此外,当一个目录中有数以万计的文件时,它会变得非常臃肿。当您不知道要检查的文件名时,很难在特定目录中找到文件。我们可以通过使用find命令和一些组合来做到这一点,我们在过去已经写过。在Linux中使用Bash脚本删除早于“X”天的文件/文件夹今天,我们将向您展示如何在Linux上使用Tmpwatch程序来实现这一点。什么是tmpwatchtmpwatch递归删除指定目录下指定时间段内未被访问的文件。通常,它用于自动清理临时文件系统目录,例如/tmp和/var/tmp。它只删除空目录、常规文件和符号链接。它不会切换到其他文件系统并避免丢失+找到属于root用户的目录。默认情况下,tmpwatch根据文件的atime(访问时间)而不是mtime(修改时间)删除文件。您可以将其他参数添加到tmpwatch命令以更改这些行为。警告:请不要在/中运行tmpwatch或tmpreaper,因为程序中没有机制可以防止这种情况发生。如何在Linux上安装tmpwatch您可以从官方存储库按如下方式安装tmpwatch。对于RHEL/CentOS6系统,使用yum命令安装tmpwatch。$sudoyuminstall-ytmpwatch对于Debian和Ubuntu系统,使用apt命令或apt-get命令安装tmpreaper。$sudoapt-getinstalltmpreaper对于openSUSE系统,使用zypper命令安装tmpwatch。$sudozypperinstall-ytmpwatch对于Fedora系统,使用dnf命令安装tmpwatch。$sudodnfinstall-ytmpwatch注意:如果您使用的是基于Debian的系统,请使用tmpreaper而不是tmpwatch。所有示例都按预期工作。了解关键选项和参数atime(文件上次访问时间):显示上次文件中的数据被任何进程(如命令或脚本)访问的时间。mtime(filelastmodificationtime):显示文件内容被修改或文件保存的时间。除非您正在更改文件属性,否则ctime和mtime在大多数情况下都是相同的。ctime(filelastchangedtime):显示文件元数据更改时间。这意味着何时更改文件属性(如所有权或组等)。dirmtime(directorylastmodificationtime):显示目录的最后修改时间。时间参数定义删除文件的阈值。d–daysh–hoursm–minutess–seconds如何使用tmpwatch命令删除一段时间未访问的文件正如我在本文开头所说,tmpwatch默认根据文件访问时间来删除文件(一次)。此外,由于小时是默认参数,因此如果使用小时,则无需为时间添加后缀。例如,运行以下命令递归删除过去5小时内未访问过的文件。#tmpwatch5/tmp运行以下命令删除最近10小时内未修改的文件。如果要使用修改时间(mtime)删除文件,需要在tmpwatch命令中加上-m选项。#tmpwatch-m10/home/daygeek/Downloads如何使用tmpwatch命令删除超过“X”天未被访问的文件如果要使用天数删除文件,则需要添加后缀d。以下示例删除超过30天的文件。#tmpwatch30d/home/daygeek/Downloads如何使用tmpwatch命令删除一段时间内没有访问过的所有文件以下命令会根据修改时间(mtime)删除所有类型的文件,而不仅仅是常规文件、符号链接和目录。#tmpwatch-am12/tmp如何排除tmpwatch中的目录下面的命令会删除过去10小时内没有修改过的所有文件,并排除目录。#tmpwatch-am10--nodirs/home/daygeek/Downloads如何排除tmpwatch中的特定路径以下命令将删除过去10小时内没有修改过的所有文件,下面排除的文件夹除外。#tmpwatch-am10--exclude=/home/daygeek/Downloads/Movies/home/daygeek/Downloads如何在tmpwatch中排除特定模式下面的命令将删除过去10小时内未修改的所有文件,除了那些满足下面列出的标准模式文件。#tmpwatch-am10--exclude-pattern='*.pdf'/home/daygeek/Downloads如何使tmpwatch命令试运行如果要试运行,请运行以下命令。#tmpwatch-t5h/home/daygeek/Downloads如何使用tmpwatch设置cronjob以定期删除文件默认情况下,它在/etc/cron.daily/tmpreaper目录中有一个cronjob文件。此cronjob根据位于/etc/timereaper.conf中的配置文件工作。您可以根据需要自定义文件。它每天运行一次并删除超过7天的文件。或者,如果您希望定期执行某项操作,您可以根据需要手动添加一个cronjob。#crontab-e010***/usr/sbin/tmpwatch15d/home/daygeek/Downloads以上cronjob会在每天上午10点删除超过15天的文件。