目前我使用下面的命令删除了,目前没发现啥问题
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"