[问题排查]磁盘空间占用异常

目前我使用下面的命令删除了,目前没发现啥问题

du -sh data/*/*|sort -rh|head -n 20
# 用下面的查
show tablet 836657
# 或者如果没有出现在下面的表中
select *
from information_schema.be_tablets
order by DATA_SIZE desc ;
# 准备删除
# 设置备份目录 (放在同一磁盘分区下移动速度最快)
export BACKUP_ROOT="/tmp/starrocks_zombie_backup"

# 定义待处理的文件列表
files=(
"~/project/strks/be/storage/data/49/287698"
"~/project/strks/be/storage/data/48/287696"
"~/project/strks/be/storage/data/47/287694"
"~/project/strks/be/storage/data/46/287692"
"~/project/strks/be/storage/data/45/287690"
"~/project/strks/be/storage/data/44/287688"
"~/project/strks/be/storage/data/43/287686"
"~/project/strks/be/storage/data/42/287684"
"~/project/strks/be/storage/data/41/287682"
"~/project/strks/be/storage/data/40/287680"
"~/project/strks/be/storage/data/39/287678"
"~/project/strks/be/storage/data/38/287674"
"~/project/strks/be/storage/data/37/287676"
"~/project/strks/be/storage/data/36/287672"
"~/project/strks/be/storage/data/35/287670"
"~/project/strks/be/storage/data/34/287668"
)

# 这里的 "删除" 实际上是移动到备份目录
echo "开始移动文件到备份目录: $BACKUP_ROOT ..."

for file in "${files[@]}"; do
    # 展开波浪号 ~ (如果脚本直接运行,shell会自动展开,这里为了安全做个处理)
    real_file=$(eval echo "$file")
    
    if [ -e "$real_file" ]; then
        # 构建备份目标路径,保留原始目录结构
        # 比如源文件是 /a/b/c,备份目录就是 $BACKUP_ROOT/a/b/
        rel_dir=$(dirname "$real_file")
        dest_dir="$BACKUP_ROOT$rel_dir"
        
        # 创建目标文件夹
        mkdir -p "$dest_dir"
        
        # 移动文件
        mv "$real_file" "$dest_dir/"
        echo "已移动: $real_file -> $dest_dir/"
    else
        echo "跳过 (文件不存在): $real_file"
    fi
done

echo "操作完成。文件已安全移至 $BACKUP_ROOT"

# 逆操作:从备份目录恢复回原位
echo "开始恢复文件..."

# 注意:这里需要重新遍历备份目录中的文件,或者利用上面的 files 列表反向操作
# 为简单起见,利用 files 列表逻辑反向查找

for file in "${files[@]}"; do
    real_file=$(eval echo "$file")
    
    # 计算刚才备份时的路径
    rel_dir=$(dirname "$real_file")
    backup_path="$BACKUP_ROOT$real_file"
    
    if [ -e "$backup_path" ]; then
        # 确保原始目录存在 (以防万一父目录也被删了)
        mkdir -p "$rel_dir"
        
        # 移回原位
        mv "$backup_path" "$real_file"
        echo "已恢复: $real_file"
    else
        echo "警告: 在备份中未找到文件 $backup_path"
    fi
done

echo "恢复完成。"

### 彻底删除文件,释放空间

# ⚠️ 警告:此操作不可逆
rm -rf "$BACKUP_ROOT"