温馨提示×

Ubuntu Recycle怎样监控磁盘空间

小樊
32
2025-12-06 01:24:27
栏目: 云计算

Ubuntu 回收站与磁盘空间监控指南

一 核心概念

  • Ubuntu 的“回收站”是各用户主目录下的隐藏文件夹:~/.local/share/Trash,其中包含 files(存放已删除文件)和 info(存放元数据)。它没有固定容量上限,实际占用受所在分区(通常是 //home)的可用空间限制。回收站只是暂存,不会自动释放空间,需要手动清空或配置为直接删除。

二 快速检查回收站占用

  • 图形化
    • 打开磁盘占用分析器(Disk Usage Analyzer / baobab),扫描主目录(如 /home/用户名),按大小排序,定位到 .local/share/Trash/files 目录即可看到回收站实际占用。
  • 命令行
    • 查看分区整体使用:
      df -h
      
    • 查看回收站目录大小(当前用户):
      du -sh ~/.local/share/Trash/files
      du -sh ~/.local/share/Trash/info
      
    • 交互式定位大目录/大文件(推荐):
      sudo apt install ncdu
      ncdu ~/.local/share/Trash
      

以上方法可快速判断回收站是否“吃”掉了大量空间,并精确定位到具体目录与文件。

三 持续监控与告警

  • 临时排查
    • 发现异常占用时,可用 ncdudu 逐级查看大目录,确认是否回收站或其他路径(如日志、缓存)导致。
  • 系统级监控
    • 安装并使用 iotop 观察是否有进程持续写入磁盘(有助于发现异常占用源):
      sudo apt install iotop
      sudo iotop
      
    • 使用 iostat 查看磁盘 I/O 使用率与负载,判断是否因高 I/O 导致空间释放缓慢或系统卡顿:
      sudo apt install sysstat
      iostat -dx
      
  • 设置告警(可选)
    • 使用 cron 定期执行 df,当可用空间低于阈值时发邮件或记录日志。例如(编辑 root 的 crontab):
      sudo crontab -e
      # 每10分钟检查 / 分区,低于 10G 时记录到日志
       */10 * * * * df -h / | awk 'NR==2 {gsub("%",""); if($5>90) system("echo \\"$(date): / 分区已用 "$5"%, 剩余 "$4"\\" >> /var/log/disk_alert.log")}'
      

上述工具与方法可帮助你从“发现异常”到“定位来源”再到“持续告警”的完整闭环监控。

四 回收站占用过大时的处理

  • 安全清空回收站
    • 图形界面:在文件管理器中右键“回收站”→“清空回收站”。
    • 命令行(当前用户):
      rm -rf ~/.local/share/Trash/files/*
      rm -rf ~/.local/share/Trash/info/*
      
    • 当回收站包含极大量文件时,直接用 rm -rf 可能卡死。可用 rsync 快速清空:
      mkdir -p /tmp/empty
      rsync --delete-before -a -H -v --progress --stats /tmp/empty/ ~/.local/share/Trash/files/
      rm -rf ~/.local/share/Trash/info/*
      
  • 预防再次堆积
    • 在文件管理器的“首选项”中将删除行为设为直接删除(不进入回收站),或在脚本/程序中避免使用回收站路径。
  • 若发现是系统其他路径占用
    • 可按需清理常见空间大户(示例命令):
      # 清理 APT 缓存
      sudo apt clean
      sudo apt autoclean
      
      # 删除不再需要的旧内核(先查版本)
      dpkg -l | grep linux-image
      sudo apt purge linux-image-<VERSION>
      
      # 清理 systemd 日志(保留最近30天)
      sudo journalctl --vacuum-time=30d
      
      # 清理缩略图缓存
      rm -rf ~/.cache/thumbnails/*
      

以上做法能在清理回收站的同时,处理常见的空间占用源头,降低再次发生的风险。

0