温馨提示×

centos recycle如何清理磁盘空间

小樊
45
2025-12-13 16:54:07
栏目: 云计算

CentOS 回收站清理与空间释放

一、先定位回收站目录与占用

  • 图形会话(如 GNOME)或命令行使用 gvfs-trash 时,回收站位于用户家目录的隐藏目录:
    • 文件:~/.local/share/Trash/files
    • 信息:~/.local/share/Trash/info
  • 服务器常用 trash-cli 时,同样使用上述路径。
  • 快速查看占用:
    • 查看家目录回收站大小:du -sh ~/.local/share/Trash/files
    • 交互式定位大目录:ncdu ~/.local/share/Trash
  • 注意:若以 root 执行清理,路径为 /root/.local/share/Trash/files;其他用户为 /home/用户名/.local/share/Trash/files

二、立即清理回收站

  • 图形或 trash-cli 用户:
    • 清空全部:trash-empty(按策略删除,较安全)
    • 按时间清理(删除 7 天前):trash-empty 7
  • 直接删除回收站文件(谨慎):
    • 当前用户:rm -rf ~/.local/share/Trash/files/*
    • root 用户:rm -rf /root/.local/share/Trash/files/*
  • 清理回收站信息元数据(避免残留索引):
    • rm -rf ~/.local/share/Trash/info/*
  • 建议先 ls ~/.local/share/Trash/files 确认内容,再执行删除。

三、配置自动清理与更安全的 rm

  • 使用 trash-cli 替代 rm(更安全,避免误删):
    • 安装:sudo yum install -y trash-cli
    • 删除到回收站:trash <文件或目录>
    • 查看回收站:trash-list
    • 清空回收站:trash-empty
    • 可选:在 ~/.bashrc 中将 alias rm='trash'(或保留 rm,另建 alias del='trash'),并 source ~/.bashrc 生效。
  • 定时自动清理(示例:保留最近 7 天):
    • 创建脚本 /usr/local/bin/clean-trash.sh
      #!/usr/bin/env bash
      TRASH="$HOME/.local/share/Trash"
      find "$TRASH/files"   -mindepth 1 -mtime +7 -delete
      find "$TRASH/info"    -mindepth 1 -mtime +7 -delete
      
    • 赋权:chmod +x /usr/local/bin/clean-trash.sh
    • 加入 crontab(每天 2:00 执行):
      0 2 * * * /usr/local/bin/clean-trash.sh
      
  • 说明:不同桌面/工具对“保留天数”的实现不同,trash-cli 的 trash-empty N 是常见做法;若需按容量上限控制,可结合 dufind ... -mtime 自行实现。

四、回收站之外进一步释放空间

  • 清理包管理器缓存:sudo yum clean all
  • 删除无用依赖:sudo yum autoremove
  • 清理旧内核(保留 1 个):sudo package-cleanup --oldkernels --count=1
  • 清理临时文件:sudo rm -rf /tmp/*sudo rm -rf /var/tmp/*
  • 日志轮转与清理:
    • 查看大小:sudo du -sh /var/log/*
    • 清空指定日志:sudo truncate -s 0 /var/log/<日志文件>
    • 配置 logrotate 做长期自动轮转与压缩。

五、风险提示

  • 执行 rm -rftrash-empty 前务必确认回收站内容,避免误删重要数据。
  • 生产环境建议先在测试环境验证脚本,并保留关键数据备份。
  • 若磁盘已 100% 且无可用空间,先清理回收站与临时目录,再执行包管理与日志清理,以免命令失败。

0