温馨提示×

CentOS回收站大小限制

小樊
48
2025-09-28 15:50:45
栏目: 智能运维

CentOS系统回收站大小限制的实现方法

CentOS系统默认未内置图形化回收站功能,但可通过以下工具或方法实现类似效果并限制其大小:

1. 使用trash-cli工具(推荐)

trash-cli是命令行工具,可实现回收站的增删查功能,并支持通过配置文件限制大小。

  • 安装工具:通过yum包管理器安装:sudo yum install trash-cli
  • 配置大小限制
    • 全局配置(影响所有用户):编辑/etc/trash.conf文件,找到[Trash] section,添加或修改以下参数:
      trash_max_file_size = 10485760 # 单个文件最大大小(单位:字节,10MB) trash_max_size = 10737418240 # 回收站总大小(单位:字节,10GB) trash_keep_days = 7 # 文件保留天数(可选) 
    • 用户级配置(仅影响当前用户):编辑~/.config/trash/config文件,添加相同参数。
  • 使用命令
    • 删除文件至回收站:trash /path/to/file(替代rm命令);
    • 查看回收站内容:trash-list
    • 清空回收站:trash-empty(可指定天数,如trash-empty 30清空30天前的文件)。

2. 使用lsof+truncate手动管理

若不想安装额外工具,可通过以下脚本定期监控并限制回收站大小:

  • 创建回收站目录mkdir -p ~/.local/share/Trash/files(用户级)或/opt/recycle_bin(系统级)。
  • 设置大小限制:使用truncate命令初始化目录大小(如10GB):truncate -s 10G ~/.local/share/Trash/files
  • 编写清理脚本(示例):
    #!/bin/bash TRASH_DIR="$HOME/.local/share/Trash/files" MAX_SIZE=10G CURRENT_SIZE=$(du -s "$TRASH_DIR" | awk '{print $1}') if [ "$CURRENT_SIZE" -gt "$(numfmt --from=iec $MAX_SIZE)" ]; then OLDEST_FILES=$(ls -t "$TRASH_DIR" | tail -n +2) # 保留最新1个文件 for FILE in $OLDEST_FILES; do rm -rf "$TRASH_DIR/$FILE" done fi 
  • 定期运行:将脚本保存为cleanup_trash.sh,添加可执行权限(chmod +x cleanup_trash.sh),并通过cron设置每日执行(crontab -e添加0 0 * * * /path/to/cleanup_trash.sh)。

3. 使用LVM调整逻辑卷大小

若回收站位于LVM逻辑卷上,可通过调整卷大小间接控制回收站容量:

  • 查看逻辑卷信息lvdisplay(确认卷组名称和逻辑卷路径,如/dev/vg_centos/lv_root)。
  • 扩展逻辑卷(需有剩余空间):lvextend -L +10G /dev/vg_centos/lv_root(增加10GB)。
  • 调整文件系统大小resize2fs /dev/vg_centos/lv_root(适用于ext4文件系统)。

4. 启用文件系统配额

通过quota工具为用户/组设置回收站目录的磁盘使用限额:

  • 安装quotasudo yum install quota
  • 修改fstab:编辑/etc/fstab,在目标分区(如/home)选项中添加usrquota,grpquota
    /dev/sda1 /home ext4 defaults,usrquota,grpquota 1 2 
  • 启用配额
    mount -o remount /home # 重新挂载分区 quotacheck -cum /home # 创建配额数据库 quotaon -v /home # 启用配额 
  • 设置用户限额edquota -u username,在编辑器中修改disk_quota(如10GB)。

5. 自定义回收站脚本

通过alias和函数模拟回收站行为,并限制目录大小:

  • 创建回收站目录mkdir -p ~/.trash
  • 配置环境变量:编辑~/.bashrc,添加以下内容:
    alias rm='mv -i $@ ~/.trash/' # 删除文件至回收站 alias cleart='rm -rf ~/.trash/*' # 清空回收站 alias tsize='du -sh ~/.trash' # 查看回收站大小 
  • 限制大小:编写脚本(如check_trash_size.sh),定期检查~/.trash大小,超过阈值则删除旧文件(参考方法2的脚本)。

以上方法可根据需求选择:若需图形化操作,推荐使用trash-cli;若需轻量级管理,可选择自定义脚本或配额;若需长期稳定,建议使用LVM调整逻辑卷大小。

0