温馨提示×

centos recycle如何设置回收站有效期

小樊
40
2025-12-13 17:06:04
栏目: 智能运维

CentOS 回收站有效期设置指南

一、使用 trash-cli 的标准做法

  • 安装工具(CentOS 7/8 常用 yum,若为 CentOS Stream 9 可用 dnf):
    • sudo yum install -y trash-cli
  • 配置保留天数(按用户生效):
    • 编辑或创建配置文件:mkdir -p ~/.config/trash && vi ~/.config/trash/config
    • 写入:trash_keep_days = 7(示例为保留7天
  • 常用命令:
    • 删除到回收站:trash 文件路径
    • 列出回收站:trash-list
    • 按时间清理(等效于设置“有效期”):trash-empty 7(清理7天前的条目)
    • 立即清空:trash-empty
  • 说明:
    • trash-cli 采用 XDG 回收站规范,文件移动到用户家目录下的 ~/.local/share/Trash/files,对应的元数据在 ~/.local/share/Trash/info(内含删除时间)。通过“定期执行 trash-empty N”即可稳定实现“有效期 N 天”。

二、自定义回收站并用定时任务清理

  • 思路:为 rm 设置别名,将删除的文件移到自定义目录(如 ~/.trash),再用 cron 定期删除超过 N 天的文件。
  • 快速配置示例(保留7天):
    1. 在 ~/.bashrc 或 /etc/profile 中加入:
      • mkdir -p ~/.trash
      • alias rm=‘mv -i -t ~/.trash --backup=t’
      • alias rl=‘ls ~/.trash’
      • alias ur=‘mv -i ~/.trash/$@ ./’
      • cleartrash() { read -p “clear sure? [n]” c; [[ $c =~ ^[yY]$ ]] && /bin/rm -rf ~/.trash/*; }
    2. 立即生效:source ~/.bashrc(或 source /etc/profile)
    3. 定时清理(每天零点清理7天前的文件):
      • crontab -e
      • 0 0 * * * find ~/.trash -mtime +7 -exec /bin/rm -rf {} ;
  • 说明:
    • 上述做法对所有使用该环境的用户生效;若仅个别用户需要,请仅修改对应用户的 ~/.bashrc。使用绝对路径 /bin/rm 可绕过别名直接删除,避免进入回收站。

三、按日期分目录的回收站与自动清理

  • 思路:删除时按“年_月_日”分目录存放,配合每日运行的脚本把“昨天”的移动到日期目录,并清理 N 天前的整日目录(示例保留5天)。
  • 关键步骤:
    • 删除命令示例:alias del=‘mv -t /tmp/del_bak/tmp/ --backup=t’
    • 每日任务脚本(/usr/local/tools/Trash_mkdir.sh)要点:
      • 创建当日目录:/tmp/del_bak/MM/DD
      • 将 /tmp/del_bak/tmp 中“昨天”的文件移入对应日期目录
      • 删除 5天前 的日期目录
    • 定时任务(每天 00:10 执行):
      • 10 0 * * * /usr/local/tools/Trash_mkdir.sh
  • 说明:
    • 该方案便于审计与快速回滚,按“整日”清理更可控,适合服务器环境。

四、注意事项与最佳实践

  • 不要覆盖系统 rm:若用别名或自定义脚本接管 rm,务必保留“/bin/rm 直删”的能力,避免脚本异常时无法快速清理。
  • 多用户环境:为各用户单独配置回收站目录与定时任务,避免跨用户可见与权限问题。
  • 谨慎使用通配符与 -rf:接管 rm 后,通配符删除会进入回收站;若需立即物理删除,请使用 /bin/rm -rf
  • 定期校验:首次部署后观察清理任务日志,确认“有效期”与磁盘占用符合预期。

0