我们知道系统中经常会有一些文件忘记删除很长一段时间,而且真的没有用。如果不处理,这些无用的文件将会越来越多,浪费大量的系统资源。在不知道文件名称的情况下,很难检查哪些文件长时间没有被访问并删除。今天,我们将介绍一个非常实用的工具来完成这项工作————tmpwatch
tmpwatch 是什么
tmpwatch 可循环删除指定目录下指定时间内未被访问的文件,常用于清理临时文件目录,如 /tmp 或者 /var/tmp 这类目录。
它只清除指定目录下的空目录、普通文件和符号链接文件,不会影响其他目录,并避免它们root与用户系统相关的关键文件。
默认情况下,tmpwatch 根据文件命令 atime (access time)而非 mtime (modify time)删除文件。若要更改其删除依据,可在使用此命令时添加您想要修改的参数。
注:不要在根目录下运行 tmpwatch 或者 tmpreaper 命令,因为系统没有机制阻止你在根目录下运行。
怎样在 Linux 上安装 tmpwatch
各种 Linux 发行版本的安装命令略有不同。具体安装方法见下文。
如果你的 Linux 发行版本是 REHL/CentOS 6 可使用 yum 命令来安装 tmpwatch,示例如下:
$ sudo yum install -y tmpwatch\
若使用 Linux 发行版本是 Debian 或者 Ubuntu ,则需要使用 apt 或者 apt-get 命令来安装 Tmpreaper,示例如下:
$ sudo apt-get install tmpreaper\
假如你用的是 openSUSE,则应使用 zypper 命令安装 tmpwatch:
$ sudo zypper install -y tmpwatch\
如果 Linux 发行版本是 Fedora,则应使用 dnf 命令安装 tmpwatch:
$ sudo dnf install -y tmpwatch\
说明:在以 Debian 为基础的 Linux 系统,是用 tmpreaper 命令代替 tmpwatch 如果你使用的系统是 Debian 为基础的Linux 版本,将在下面的示例中 tmpwatch 换为 tmpreaper 即可。
tmpwatch 命令的关键选项和参数atime (File Last Access Time):最后一次访问文件的时间;mtime (File Last Modify Time):最后一次修改文件内容的时间;ctime (File Last Change Time):最后一次修改文件元数据,即文件相关属性被修改的时间,在大多数情况下 mtime 和 ctime 值相同,但不涉及内容的属性,如文件所有者、权限和组,只会影响 ctime;dirmtime (Directory Last modification time):最后一次修改目录。
设置删除文件的条件阈值:
d:单位为天;h:单位为小时;m:单位为分钟;s:单位为秒 tmpwatch 命令删除一段时间内未被访问的文件
如前所述,tmpwatch 默认命令的选项是 atime,默认单位参数为 h,因此,如果您真的想根据小时计算的访问时间删除文件,您可以直接使用此命令,而无需添加任何特殊选项或参数后缀。如下所示,即删除 /tmp 过去5小时内目录下未被访问的文件:
# tmpwatch 5 /tmp\
下面的例子是删除 /home/daygeek/Downloads 目录下过去十小时内未修改内容的文件。请注意,如果要按下 mtime 删除文件需要添加到命令中 -m 的选项:
# tmpwatch -m 10 /home/daygeek/Downloads\删除其他单位计算的文件
要以天为单位,需要加 d 以下是删除30天内未被访问的文件:
# tmpwatch 30d /home/daygeek/Downloads\删除一段时间内未使用的所有文件
如果您不仅想删除普通文件、符号链接文件、空目录文件,还想删除指定目录下未被访问的所有文件,则需要添加选项 -a,以下是删除指定目录下12小时未修改的所有文件:
# tmpwatch -am 12 /tmp\删除某些目录以外的删除操作
以下命令可以删除10小时内未修改的目录:
# tmpwatch -am 10 –nodirs /home/daygeek/Downloads\删除操作外的特定路径
删除以下命令 /home/daygeek/Downloads 目录中所有10小时内未修改的文件,但 /home/daygeek/Downloads/Movies 但路径不受影响,即路径下10小时内未修改的文件不会被删除:
# tmpwatch -am 10 –exclude=/home/daygeek/Downloads/Movies /home/daygeek/Downloads\删除操作外的特定格式文件
下列命令是删除指定文件下10小时内未更改的所有文件,除外 pdf 格式文件:
# tmpwatch -am 10 –exclude-pattern='*.pdf' /home/daygeek/Downloads\预演 tmpwatch 的效果
下面的命令是对的 tmpwatch 预演功能效果:
# tmpwatch -t 5h /home/daygeek/Downloads\用 tmpwatch 定期设置删除操作的定期任务
要完成这项任务,它将在 /etc/cron.daily/tmpreaper 留下一个目录 cronjob 根据文件,本文件 /etc/timereaper.conf 你可以根据自己的需要设置它。
每天上午10点删除指定目录下的15天未被访问的文件:
# crontab -e\\0 10 * * * /usr/sbin/tmpwatch 15d /home/daygeek/Downloads\
关于 tmpwatch 这就是命令的介绍。我希望这篇文章能对读者有所帮助。如果您对此命令有任何疑问或其他想法,请留言讨论
> 2020 精选 阿里/腾讯等一线大厂商 面试、简历、高级、电子书 「**良许Linux**」后台回复「**资料**」免费获取
#### 看完就是真爱,点赞再走?「三连」是良许持续创作的最大动力!
1. 关注**原创**「**良许Linux**」,第一次获得最新Linux干货!
2. 后台回复【资料】【面试】【简历】获取一线大厂面试、自我提升、简历等资料。
3. 关注我的博客:[lxlinux.net](http://www.lxlinux.net)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至827202335@qq.com 举报,一经查实,本站将立刻删除。文章链接:https://www.eztwang.com/dongtai/50274.html