温馨提示×

centos recycle如何定时清理

小樊
42
2026-09-18 06:53:30
栏目: 智能运维

在 CentOS 里,你说的 “recycle” 一般指的是 回收站(用户级或系统级),常见有两种场景:

  1. 桌面环境回收站(如 GNOME/KDE)
  2. 自定义回收站目录(比如删文件先移到 /data/recycle

下面分别说明如何定时清理


一、桌面环境回收站(~/.local/share/Trash)

1. 回收站位置

~/.local/share/Trash

结构:

Trash/
 ├── files/     # 删除的文件
 └── info/      # 删除信息

2. 定时清理(crontab 示例)

例如:每天凌晨 3 点清理 7 天前的文件

crontab -e

添加:

0 3 * * * find ~/.local/share/Trash/files -type f -mtime +7 -delete
0 3 * * * find ~/.local/share/Trash/info -type f -mtime +7 -delete

二、自定义回收站目录(推荐服务器使用)

假设你把删除的文件统一放到:

/data/recycle

1. 删除时移到回收站

mv file /data/recycle/

2. 定时清理(crontab)

例如:每天清理 30 天前的文件

crontab -e
0 2 * * * find /data/recycle -type f -mtime +30 -delete
0 2 * * * find /data/recycle -type d -empty -delete

三、使用 systemd timer(CentOS 7+ 更现代)

1. 创建清理脚本

vi /usr/local/bin/clean_recycle.sh
#!/bin/bash
find /data/recycle -type f -mtime +30 -delete
find /data/recycle -type d -empty -delete
chmod +x /usr/local/bin/clean_recycle.sh

2. 创建 service

vi /etc/systemd/system/clean-recycle.service
[Unit]
Description=Clean recycle bin

[Service]
Type=oneshot
ExecStart=/usr/local/bin/clean_recycle.sh

3. 创建 timer

vi /etc/systemd/system/clean-recycle.timer
[Unit]
Description=Daily clean recycle

[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true

[Install]
WantedBy=timers.target

4. 启用

systemctl enable --now clean-recycle.timer

查看:

systemctl list-timers

四、注意事项(很重要)

  • ❌ 不要用 rm -rf 直接清根目录
  • ✅ 清理前可先 -print 测试:
find /data/recycle -mtime +30 -print
  • 若多用户,注意权限问题

五、常见需求对照表

需求 命令
清理 7 天前 -mtime +7
清理 30 天前 -mtime +30
只删文件 -type f
只删空目录 -type d -empty

如果你能告诉我:

  • 桌面还是服务器
  • 回收站在 哪个目录
  • 保留多少天

我可以直接给你一套可直接用的配置

0