温馨提示×

CentOS回收站如何定时清理

小樊
54
2025-10-02 22:44:11
栏目: 智能运维

CentOS回收站定时清理方法

1. 确定回收站路径

CentOS系统的回收站通常位于用户主目录下的隐藏文件夹中,路径为:
~/.local/share/Trash/(包含files子目录用于存放删除的文件,info子目录用于存储文件元信息)。
若未找到,可通过ls -a ~命令查看是否存在.local/share/Trash目录。

2. 使用trash-cli工具(推荐)

trash-cli是专门用于管理回收站的命令行工具,支持定时清空、设置保留时间等功能。

  • 安装trash-cli
    执行sudo yum install trash-cli命令安装(需联网)。
  • 配置定时任务
    编辑当前用户的crontab文件(crontab -e),添加以下内容:
    # 每天凌晨0点清空回收站(保留30天内的文件)
    0 0 * * * /usr/bin/trash-empty 30
    
    其中,trash-empty 30表示删除30天前的回收站文件,可根据需求调整天数(如7表示保留7天)。

3. 手动创建回收站+定时任务

若未使用trash-cli,可通过自定义脚本实现回收站及定时清理。

  • 创建回收站目录
    执行mkdir -p ~/.local/share/Trash/files创建回收站文件目录(可选:mkdir -p ~/.local/share/Trash/info创建元信息目录)。
  • 修改rm命令(可选)
    rm命令重定向到回收站,避免直接删除文件。创建/bin/rm脚本(需root权限):
    #!/bin/bash
    RECYCLE_BIN="$HOME/.local/share/Trash/files"
    for item in "$@"; do
      mv "$item" "$RECYCLE_BIN/$(date +%s)_$(basename "$item")"
    done
    
    赋予执行权限:chmod +x /bin/rm,并修改~/.bashrc添加alias rm='/bin/rm'使更改生效(source ~/.bashrc)。
  • 设置定时任务
    编辑crontab文件(crontab -e),添加以下内容(以每天凌晨0点清空为例):
    # 方法1:直接删除回收站文件(简单粗暴)
    0 0 * * * rm -rf ~/.local/share/Trash/files/*
    
    # 方法2:按访问时间删除(更灵活,如删除1天未访问的文件)
    0 0 * * * find ~/.local/share/Trash/files -type f -atime +1 -delete
    0 0 * * * find ~/.local/share/Trash/info -type f -atime +1 -delete
    
    其中,-atime +1表示删除1天前访问过的文件,可根据需求调整时间(如+7表示7天)。

4. 高级优化:按大小清理

若回收站占用空间过大,可设置脚本按大小清理(如超过10GB时清空)。

  • 创建清理脚本
    新建/usr/local/bin/clean_recycle_bin.sh,内容如下:
    #!/bin/bash
    RECYCLE_BIN="$HOME/.local/share/Trash/files"
    MAX_SIZE=$((10 * 1024 * 1024)) # 10GB(单位:KB)
    CURRENT_SIZE=$(du -sk "$RECYCLE_BIN" | awk '{print $1}')
    
    if [ "$CURRENT_SIZE" -gt "$MAX_SIZE" ]; then
      rm -rf "$RECYCLE_BIN"/*
      echo "$(date): 回收站大小超过${MAX_SIZE/1024}GB,已清空。" >> /var/log/recycle_clean.log
    fi
    
    赋予执行权限:chmod +x /usr/local/bin/clean_recycle_bin.sh
  • 设置定时任务
    编辑crontab文件(crontab -e),添加以下内容(如每天凌晨2点执行):
    0 2 * * * /usr/local/bin/clean_recycle_bin.sh
    

注意事项

  • 权限问题:确保脚本和定时任务有足够的权限(如清理系统级回收站需用root用户)。
  • 测试验证:手动运行脚本(如/usr/local/bin/clean_recycle_bin.sh)确认功能正常,避免误删。
  • 日志记录:建议将清理操作记录到日志文件(如/var/log/recycle_clean.log),便于排查问题。

0