温馨提示×

CentOS回收站怎么设置容量

小樊
42
2025-11-23 23:44:15
栏目: 智能运维

CentOS 回收站容量设置指南

前置说明

  • CentOS 服务器版默认没有图形化回收站;命令行下的 rm 会直接删除文件。常见做法是使用 trash-cli 提供“回收站”语义,或用 磁盘配额 从底层限制用户可用空间,亦可通过 自定义脚本 + cron 定期清理回收站目录。桌面环境(如 GNOME)可用 gvfs-trash,但其容量通常由桌面配置管理,服务器场景较少使用。

方案一 使用 trash-cli 并配合配额或定时清理(推荐)

  • 安装与基本用法
    • 安装:sudo yum install -y trash-cli
    • 常用命令:trash 文件路径(移入回收站)、trash-list(查看)、trash-empty(清空)
  • 容量控制思路
    • trash-cli 本身不提供“最大容量”配置项,通常通过“用户配额”或“定时清理脚本”来限制回收站目录大小。
  • 方式 A:用磁盘配额限制回收站可用空间
    • 适用场景:需要对某个用户(含其回收站)设定硬性上限。
    • 简要步骤(以 /home 分区为例):
      1. 编辑 /etc/fstab,为分区添加配额选项:/dev/sdaX /home ext4 defaults,usrquota,grpquota 1 2
      2. 重新挂载:mount -o remount /home
      3. 初始化配额数据库:quotacheck -cum /home
      4. 启用配额:quotaon -vug /home
      5. 为用户设置配额:edquota -u username(设置 blocks 的软/硬限制)
  • 方式 B:用脚本 + cron 按容量自动清理最旧文件
    • 思路:当回收站目录超过阈值时,按修改时间删除最旧文件,直到低于阈值。
    • 示例脚本(保存为 /usr/local/bin/cleanup-trash.sh):
      #!/usr/bin/env bash
      TRASH="$HOME/.local/share/Trash/files"
      MAX_BYTES=$((100 * 1024 * 1024))  # 100MB,可按需调整
      
      [[ ! -d "$TRASH" ]] && exit 0
      cur=$(du -sb "$TRASH" 2>/dev/null | awk '{print $1}')
      (( cur <= MAX_BYTES )) && exit 0
      
      # 按 mtime 升序删除最旧文件,直到低于阈值
      find "$TRASH" -mindepth 1 -printf '%T@ %p\n' | sort -n | cut -d' ' -f2- | while IFS= read -r f; do
          rm -rf "$f"
          cur=$(du -sb "$TRASH" 2>/dev/null | awk '{print $1}')
          (( cur <= MAX_BYTES )) && break
      done
      
    • 赋权并加入定时任务(例如每天清理一次):
      • chmod +x /usr/local/bin/cleanup-trash.sh
      • crontab -e 添加:0 0 * * * /usr/local/bin/cleanup-trash.sh
  • 说明
    • 若系统为 CentOS 8/Stream,可用 dnf 安装:sudo dnf install -y trash-cli。

方案二 自定义回收站目录 + 别名 + 定时清理(轻量可控)

  • 适合无桌面、希望简单可控的场景。
  • 配置步骤
    1. 创建回收站目录:mkdir -p ~/.trash
    2. 在 ~/.bashrc 定义别名与函数(示例):
      alias rm='trash'                 # 将 rm 替换为 trash-cli(若已安装)
      alias rl='ls ~/.trash'            # 查看回收站
      alias ur='undelfile'             # 恢复文件
      undelfile() { mv -i ~/.trash/"$@" ./ ; }
      cleartrash() {
        read -p "确定清空回收站吗?(y/N) " c
        [[ "$c" =~ ^[Yy]$ ]] && /bin/rm -rf ~/.trash/*
      }
      
    3. 使配置生效:source ~/.bashrc
    4. 按需加入“按容量清理”的 cron(同上脚本,TRASH 改为 ~/.trash)。
  • 提示
    • 若坚持用原始 rm,可把别名改为自定义函数,将删除动作改为“mv 到 ~/.trash 并加时间戳”,避免误删且便于追溯。

方案三 桌面环境 GNOME 的回收站

  • 若使用 GNOME,可用 gvfs-trash 将文件移至桌面回收站(如 gvfs-trash /path/to/file)。
  • 容量与保留策略通常由 GNOME 配置 管理,服务器环境一般不涉及;如需容量上限,仍建议采用“配额”或“脚本清理”的方案。

0