在 Linux 中使用 tmpreaper 删除超过 N 天的文件
tmpreaper 是一个工具,用于删除一段时间内未访问的文件。
在 Linux 桌面发行版上,这对于清理诸如“~/Downloads”之类的目录很有用,文件会在一段时间内累积起来。
在 Linux 服务器发行版上,这对于清理不再需要的旧日志文件或备份文件很有用。
tmpreaper 递归搜索并删除一段时间内未访问的文件和目录。
注意:在安装 tmpreaper 并开始使用它之前,请确保您了解运行 tmpreaper 的含义,因为它会从系统中删除所有符合给定条件的文件。不要在 /(根目录)上运行 tmpreaper,这可能会删除保持系统运行所需的关键文件。tmpreaper 程序中没有内置保护措施来阻止您在根目录上运行,因为这会使 tmpreaper 难以在 chroot 环境中使用。
1.安装tmpreaper
在 Ubuntu 等基于 debian 的系统上,使用 apt-get:
$ sudo apt-get install tmpreaper
在 CentOS 和 RedHat 等基于 RPM 的系统上,使用 yum:
$ sudo yum -y install tmpreaper
tmpreaper 命令语法:
$ tmpreaper [options] <time_spec> <dirs>
2. 删除 N 天前的文件
要删除 5 天前的文件,请使用“5d”作为 timespec。
例如,以下命令将从 ~/Downloads 文件夹中删除过去 5 天内未访问的文件。
$ tmpreaper 5d ~/Downloads
3.删除N天未修改的文件
默认情况下,tmpreaper 会根据“访问时间”删除文件。您可以使用“-m”选项告诉 tmpreaper 根据“修改时间”删除文件。
以下命令将删除下载文件夹中 5 天未修改的文件。
$ tmpreaper -m 5d ~/Downloads
您还可以将以下字符用于 time_spec 参数
- d – 几天
- h - 几个小时
- m – 分钟
- s – 秒
4. 使用 -s 删除符号链接
使用 -s 选项也可以删除符号链接,而不仅仅是文件和目录。
除了清理文件和目录之外,以下命令还将清理与给定时间规范匹配的符号链接。
$ tmpreaper -s 5h ~/Downloads
5. 使用 -a 选项删除所有文件类型
使用 -a 选项删除所有类型的文件,而不仅仅是常规文件、目录和符号链接。
$ tmpreaper -a 5m ~/Downloads
6. 进行试运行——使用 -t 选项测试是否删除
使用 -t 选项,测试哪些文件将被删除。
当您针对重要目录运行此程序并且您想在真正删除之前确切删除哪些文件时,这非常有用。
此选项不会删除文件。
$ tmpreaper -t 5d ~/Downloads
(PID 5415) Pretending to clean up directory `/home/lakshmanan/Downloads'.
(PID 5416) Pretending to clean up directory `.tmp_versions'.
(PID 5416) Back from recursing down `.tmp_versions'.
7. 使用 -f 选项强制删除文件
使用 -f 选项强制删除文件。通常不会删除当前用户 (EUID) 拥有的没有写入权限的文件。使用 -f 也会删除这些文件。
$ tmpreaper -f 5h ~/Downloads
8.不要使用-protect选项删除匹配模式的文件
使用 –protect '<shell_pattern>' 保护模式匹配文件不被删除。
例如,以下命令将删除除“.c”文件之外的所有文件。
$ tmpreaper -f 5h ~/Downloads
9. 在 Cron 中使用 tmpreaper
默认情况下,当您安装 tmpreaper 时,它会在crontab ( /etc/cron.daily/tmpreaper ) 中添加一个条目。它将从 /etc/tmpreaper.conf 读取选项并根据这些选项执行 tmpreaper 命令。
/etc/tmpreaper.conf 是不言自明的,并且易于理解。默认情况下,它将删除 /tmp 中 7 天前的文件,预计某些文件类型。如果您打算使用它,请从 /etc/tmpreaper.conf 中删除“SHOWWARNING=true”行。
删除该行后,tmpreaper 将每天运行以清理指定目录,而无需用户干预。
- 点赞
- 收藏
- 关注作者
评论(0)