温馨提示×

Ubuntu Recycle如何监控回收站状态

小樊
46
2025-12-21 21:06:01
栏目: 智能运维

Ubuntu 回收站状态监控方案

一 前置说明

  • Ubuntu 回收站并非统一机制:只有使用桌面环境(如 GNOME/KDE/XFCE)时才有图形化的“回收站”;服务器或纯命令行环境通常没有回收站。GNOME 回收站对应的目录为:~/.local/share/Trash/,其中包含 files/info/ 等子目录,用于存放被删除文件及其元数据。若没有图形界面,就无法通过“回收站图标”查看状态。

二 命令行快速查看与告警

  • 安装工具
    • 使用 trash-cli 管理回收站:sudo apt-get install trash-cli
  • 查看与统计
    • 列出回收站内容:trash-list
    • 统计数量与总大小(bash):
      count=$(trash-list | wc -l)
      size=$(du -ch ~/.local/share/Trash/files 2>/dev/null | tail -1 | cut -f1)
      echo "回收站文件数: $count, 总大小: $size"
      
  • 容量告警示例(阈值:100MB)
    #!/usr/bin/env bash
    TRASH_DIR="$HOME/.local/share/Trash/files"
    THRESHOLD_MB=100
    size_mb=$(du -sm "$TRASH_DIR" 2>/dev/null | cut -f1)
    if [ "$size_mb" -ge "$THRESHOLD_MB" ]; then
      echo "WARN: 回收站已使用 ${size_mb}MB,超过阈值 ${THRESHOLD_MB}MB"
    fi
    
  • 定时巡检(每 10 分钟)
    crontab -e
    */10 * * * * /usr/bin/env bash /path/to/check_trash.sh >> /var/log/trash-monitor.log 2>&1
    
  • 说明
    • 以上方法直接读取回收站目录或调用 trash-cli,适合服务器或无图形界面场景。

三 实时事件监控

  • 基于 inotify 的目录监控
    • 安装:sudo apt-get install inotify-tools
    • 监控回收站文件新增(删除到回收站会体现在 files/ 的新增事件):
      inotifywait -m -e create -e moved_to ~/.local/share/Trash/files
      
    • 扩展:同时监听 info/ 的写入以捕获元数据变更;对删除事件(如用户清空回收站)可监听 delete_selfmoved_from
  • 事件含义与局限
    • inotify 能实时捕获文件系统事件,但它只“看到”事件,不判断“是否进入回收站”;若应用绕过回收站直接删除(如 rm 到非 Trash 路径),需要额外规则或改用包装命令(见下节)。

四 将 rm 包装为“入站回收站”以便监控

  • 安装与别名
    • sudo apt-get install trash-cli
    • ~/.bashrc 中添加:alias rm='trash-put',执行 source ~/.bashrc
  • 效果
    • 此后使用 rm 实际调用 trash-put,所有“删除”都会进入回收站,配合第二节的统计/告警或第三节的 inotify 即可统一监控。
  • 风险提示
    • 谨慎对 sudo rm 设置别名;脚本或 root 会话可能不受影响。必要时仅对交互式 shell 启用别名。

五 图形界面查看

  • GNOME Files(Nautilus) 侧栏点击 回收站 图标即可查看、恢复或清空;在 KDE DolphinXFCE Thunar 等桌面中也有相应回收站功能。此方式适合桌面用户直观查看状态。

0