首页>教程>Linux 命令手册>Linux tmpwatch 命令 - 自动清理临时文件

Linux tmpwatch 命令 - 自动清理临时文件

tmpwatch(英文为:Temporary Watch)命令是 RHEL 系发行版下的临时文件清理工具。使用 tmpwatch 命令,能够根据临时文件的访问时间删除文件, 同时它还提供防止删除特定类型文件的机制。

在新版本的 RHEL 系发行版中可以使用 systemd-tmpfiles 工具删除临时文件。

本文将为你介绍 tmpwatch 命令的使用方法,使你对 tmpwatch 命令具有基本的了解,方便你删除临时文件。

系统安装指南

如下将给出如何在 RHEL / AlmaLinux / Rocky Linux 系统上安装 tmpwatch 命令:

# 更新软件源
sudo dnf update

# 安装 tmpwatch
sudo dnf install tmpwatch

tmpwatch 命令语法形式

tmpwatch [选项] 保留时间 目录...

语法内容解释说明:

  • [选项]:删除临时文件时,使用控制选项,用于控制删除行为
  • 时间:指定文件的保留时间(默认单位为:小时)
  • 目录:要清理的目录(可以同时指定多个目录)

tmpwatch 命令使用示例

1. 清理时指定文件的保留时间

如下示例给出清理 /tmp 目录下的文件的保留时间为 24小时内的文件:

tmpwatch 24 /tmp

2. 同时清理多个目录

如下命令将同时清理 /tmp/var/tmp 两个目录中 48 小时内的临时文件:

tmpwatch 48 /tmp /var/tmp

3. 测试删除操作

使用 -t 测试删除操作,测试时会在屏幕上输出该操作会删除的文件,但是不会实际删除这些文件:

tmpwatch -t 72 /var/log

如上命令输出文件的保留时间为 72 小时内的 /var/log 目录下的需要删除的文件。

4. 不被删除指定文件

使用 --exclude 选项,指定文件,当删除文件时,忽略掉该类文件:

tmpwatch 168 /backups --exclude '*.sql'

如上的示例将不删除以 .sql 结尾的文件

5. 按修改时间清理文件

使用 -m 选项,以文件的修改时间为参考删除文件:

tmpwatch -m 720 /archive

如上的示例会修改时间在 30 天前的文件

tmpwatch 命令选项详解

如下给出 tmpwatch 命令选项的详细解释说明:

选项说明参数示例
-a, --all删除所有类型的文件-a
-c, --ctime基于文件状态变更时间删除文件-c
-d, --nodirs不删除目录-d
-f, --force强制删除只读文件-f
-l, --nosymlinks不删除符号链接-l
-m, --mtime基于修改时间删除文件-m
-M, --dirmtime基于目录修改时间删除目录-M
-r, --recursive递归的删除子目录当中的文件-r
-t, --test测试删除操作,输出需要删除的文件,而不实际删除文件-t
-u, --atime基于访问时间删除文件-u
-U, --exclude-user=USER不删除指定用户的文件-U root
-v, --verbose删除文件时输出详细信息-v
-x, --exclude=PATH不删除特定路径下的文件-x '/tmp/important'
-X, --exclude-pattern=PATTERN不删除匹配指定模式的文件-X '*.pid'
--protect=COMMAND不删除特定命令所需的文件--protect 'docker'
--size=MIN[KMG]只删除大于指定大小的文件--size=10M

如下给出可用的时间格式说明:

  • 默认单位:小时,即不指定单位时使用的默认单位
  • 其他可用的单位:
    • h:小时(默认)
    • d:天(24小时)
    • w:周(7天)
    • m:月(30天)
    • y:年(365天)

结语

本文全面的介绍了 tmpwatch 的语法结构及其功能,并给出了 tmpwatch 命令的具体使用示例,相信你能够对 tmpwatch 命令有个基本的了解,并帮助你正确的使用 tmpwatch 删除临时文件。 tmpwatch 命令可以在 Linux 发行版和 FreeBSD 系统中使用,基本功能是相同的。