Linux tmpwatch 命令 - 自动清理临时文件
• 最后修改:2025-09-02 • 阅读量:133
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 系统中使用,基本功能是相同的。