您可能错过了删除计算机上某个目录中不再需要的文件的操作。
它可能已经成长了一段时间。
如果有足够的存储空间,则应删除它们,因为这会在列出文件时减慢系统速度。
同样,当一个目录中有成千上万个文件时,它可能很笨拙。
当您不知道要检查的文件名时,很难在特定目录中找到文件。
什么是Tmpwatch
Tmpwatch递归删除指定时间段内未在指定目录中访问的文件。
通常,它用于自动清除用于临时文件系统的目录,例如/ tmp和/ var / tmp。
它仅删除空目录,常规文件和符号链接。
它不会切换到其他文件系统,并避免属于根用户的“ lost + found”目录。
默认情况下,tmpwatch会根据文件的atime(访问时间)而不是其mtime(转换时间)删除文件。
您可以通过在tmpwatch命令中添加其他参数来更改此行为。
警告:请不要在“ /”中运行“ tmpwatch”或“ tmpreaper”,因为程序中没有防止这种情况的机制。
如何在Linux上安装Tmpwatch
可以从发行官方存储库中按以下方式安装Tmpwatch。
对于RHEL/CentOS 6系统,使用yum命令安装Tmpwatch。
$ sudo yum install -y tmpwatch
对于Debian和Ubuntu系统,请使用apt命令或apt-get命令安装Tmpreaper。
$ sudo apt-get install tmpreaper
对于openSUSE系统,请使用zypper命令安装Tmpwatch。
$ sudo zypper install -y tmpwatch
对于Fedora系统,使用dnf命令安装Tmpwatch。
$ sudo dnf install -y tmpwatch
注意:如果使用的是基于Debian的系统,请使用“ tmpreaper”而不是tmpwatch。所有示例都将按预期工作。
了解关键选项和参数
atime(文件上次访问时间)–访问时间表示上一次通过命令或脚本等任何进程访问文件中数据的时间。
mtime(文件上次修改时间)– mtime在您修改文件内容或保存文件时显示。除非文件属性被更新,否则大多数情况下ctime和mtime会相同。
ctime(文件上次更改时间)– ctime显示文件元数据何时更改。这意味着文件属性如所有权或组等发生更改时。
dirmtime(目录的上次修改时间)– dirmtime显示目录的上一次修改时间。
time参数定义删除文件的阈值。
d –数天
h –数小时
m –分钟
s –秒
如何使用Tmpwatch命令删除一段时间未访问的文件
正如我在文章开头所说,Tmpwatch默认情况下(一次)删除文件,具体取决于访问文件的时间。另外,由于小时是默认参数,因此如果使用小时单位执行操作,则无需在时间上添加后缀。
例如,运行下面的命令以递归的方式删除过去5个小时未访问的文件。
# tmpwatch 5 /tmp
运行以下命令以删除最近10个小时未修改的文件。如果要使用mtime删除文件,则需要在tmpwatch命令中添加“ -m”选项。
# tmpwatch -m 10 /home/daygeek/Downloads
如何使用Tmpwatch命令删除未超过“ X”天访问的文件
如果要使用几天删除文件,则需要添加后缀“ d”。以下示例删除了30天以上的文件。
# tmpwatch 30d /home/daygeek/Downloads
如何使用Tmpwatch命令删除一段时间未访问的所有文件
以下命令将删除所有文件类型,而不仅仅是基于mtime的常规文件,符号链接和目录。
# tmpwatch -am 12 /tmp
如何使用Tmpwatch排除目录
以下命令将删除所有文件,并排除过去10个小时未修改的目录。
# tmpwatch -am 10 --nodirs /home/daygeek/Downloads
如何使用Tmpwatch排除特定路径
下面的命令将删除除以下目录以外的所有文件,该目录在过去10个小时内未进行任何修改。
# tmpwatch -am 10 --exclude=/home/daygeek/Downloads/Movies /home/daygeek/Downloads
如何使用Tmpwatch排除特定模式
以下命令将删除除以下Pattern以外的所有文件,该Pattern在过去10个小时内未进行修改。
# tmpwatch -am 10 --exclude-pattern='*.pdf' /home/daygeek/Downloads
如何使用Tmpwatch命令执行空运行
如果要执行空运行,请运行以下命令。
# tmpwatch -t 5h /home/daygeek/Downloads
如何设置Cronjob以使用Tmpwatch定期删除文件
它将cronjob文件保留在“ /etc/cron.daily/tmpreaper”目录下。此cronjob根据位于“ /etc/timereaper.conf”中的配置文件工作。您可以根据需要自定义文件。
它每天运行一次,并删除7天以上的文件。
另外,如果您想定期执行某项操作,则可以根据需要手动添加。
# crontab -e
0 10 * * * /usr/sbin/tmpwatch 15d /home/daygeek/Downloads
上述cronjob将删除每天上午10点超过15天的文件。