tmpreaper(英文为:Temporary Reaper)命令是 Debian 系统下的临时文件清理工具,在 Debian 系发行版中,它是 tmpwatch 工具的替代者。使用 tmpreaper 命令,能够根据临时文件的访问时间删除文件, 还提供安全机制,防止文件被误删除。

注意:tmpwatch 是 RHEL 系发行版中使用的临时文件删除工具,不过在新版本的 RHEL / AlmaLInux 中已经很少使用,而是使用 systemd-tmpfiles 工具删除临时文件。

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

系统安装说明

如下将给出如何在 Debian / Ubuntu 系统上安装 tmpreaper 命令:

# 更新软件源
sudo apt update

# 安装 tmpreaper
sudo apt install tmpreaper

tmpreaper 命令的语法

如下给出 tmpreaper 命令的基本语法形式:

tmpreaper [选项] 时间 目录...

语法内容解释说明:

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

tmpreaper 命令使用示例

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

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

tmpreaper 10m /tmp

2. 同时清理多个目录

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

tmpreaper 1h /tmp /var/tmp

3. 测试删除操作

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

tmpreaper --test 24h /var/cache

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

4. 不被删除指定文件

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

tmpreaper 72h /tmp --protect '*.sock'

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

5. 清理指定大小的文件

使用 --size 指定文件的大小,清理时只删除大于该值的文件:

tmpreaper 48h --size 10M /backup

如上示例只删除 /backup 目录下大于 10MB 的临时文件

tmpreaper 命令选项详解

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

选项 说明 参数示例
-a, --all 删除所有文件类型的文件 -a
-c, --ctime 使用状态变更时间而非访问时间作为删除文件时的时间参考 -c
-d, --nodirs 不删除目录 -d
-f, --force 强制删除只读的文件 -f
-m, --mtime 基于修改时间而非访问时间作为删除文件时的时间参考 -m
-r, --recursive 递归的删除子目录中的文件 -r
-s, --size 指定删除文件的大小,大于该值的文件将被删除 --size 10M
-t, --test 测试删除操作,输出需要删除的文件,而不实际删除文件 -t
-u, --utc 使用UTC时间作为删除文件时的时间参考 -u
-v, --verbose 删除时输出详细信息 -v
-n, --nosignal 忽略信号 -n
--protect 指定不删除的文件 --protect '*.pid'
--exclude 排除指定的文件 --exclude '*.log'
--noop 空操作 --noop
-h, --help 显示帮助信息
-V, --version 显示版本信息

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

  • 默认单位:分钟,即不指定单位时使用的默认单位
  • 可用的单位:
    • s:秒
    • m:分钟
    • h:小时
    • d:天

结语

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