mirror of
https://gitee.com/cncsrf/bitiful-oss
synced 2026-04-06 06:03:14 +08:00
101 lines
3.4 KiB
Bash
101 lines
3.4 KiB
Bash
#!/bin/bash
|
||
# ================================================
|
||
# 缤纷云对象存储卸载脚本
|
||
# 功能:卸载bitifs客户端,清理挂载、配置和服务
|
||
# 版本: 2.1
|
||
# 更新: 适配新安装脚本的配置
|
||
# ================================================
|
||
|
||
# 颜色定义
|
||
RED='\033[0;31m'
|
||
GREEN='\033[0;32m'
|
||
YELLOW='\033[0;33m'
|
||
BLUE='\033[0;34m'
|
||
NC='\033[0m' # No Color
|
||
|
||
# 彩色输出函数
|
||
info() { echo -e "${GREEN}[信息]${NC} $1"; }
|
||
warn() { echo -e "${YELLOW}[警告]${NC} $1"; }
|
||
error() { echo -e "${RED}[错误]${NC} $1"; exit 1; }
|
||
title() { echo -e "${BLUE}$1${NC}"; }
|
||
|
||
# 检查root权限
|
||
[ "$(id -u)" != "0" ] && error "此脚本需要root权限执行!"
|
||
|
||
# 欢迎信息
|
||
title "================================================"
|
||
title " 缤纷云(bitiful.com)对象存储卸载脚本"
|
||
title "================================================"
|
||
info " 功能说明:"
|
||
info " 1. 停止并禁用bitifs挂载服务"
|
||
info " 2. 卸载对象存储挂载点"
|
||
info " 3. 删除bitifs客户端程序"
|
||
info " 4. 清理AK/SK凭证配置"
|
||
info " 5. 可选删除挂载目录"
|
||
warn ""
|
||
warn " 注意: 此操作将永久删除以下内容:"
|
||
warn " 1. /usr/local/bin/bitifs (客户端程序)"
|
||
warn " 2. /etc/bitifs/ (凭证配置)"
|
||
warn " 3. 挂载服务配置"
|
||
warn ""
|
||
warn " 操作前请确保:"
|
||
warn " 1. 已备份挂载点中的重要数据"
|
||
warn " 2. 已关闭所有访问挂载点的程序"
|
||
title "================================================"
|
||
|
||
# 确认卸载
|
||
read -p "$(info '确定要卸载bitiful对象存储吗?(y/n): ')" confirm
|
||
[ "$confirm" != "y" ] && exit 0
|
||
|
||
# 获取挂载点信息
|
||
MOUNT_PATH=$(systemctl cat bitifs-mount.service 2>/dev/null | grep -oP 'ExecStart.*\s\K\/\S+' | head -1)
|
||
MOUNT_PATH=${MOUNT_PATH:-"/mnt/bitiful-oss"}
|
||
BUCKET_NAME=$(systemctl cat bitifs-mount.service 2>/dev/null | grep -oP 'bitifs\s+\K\S+' | head -1)
|
||
|
||
# 停止并禁用服务
|
||
info "停止并禁用bitifs挂载服务..."
|
||
systemctl stop bitifs-mount.service 2>/dev/null
|
||
systemctl disable bitifs-mount.service 2>/dev/null
|
||
rm -f /etc/systemd/system/bitifs-mount.service
|
||
systemctl daemon-reload
|
||
systemctl reset-failed 2>/dev/null
|
||
|
||
# 卸载挂载点
|
||
info "卸载挂载点..."
|
||
if mount | grep -q "$MOUNT_PATH"; then
|
||
umount -l "$MOUNT_PATH" 2>/dev/null || \
|
||
warn "卸载挂载点失败,可能是已被卸载或挂载点不存在"
|
||
else
|
||
info "挂载点 $MOUNT_PATH 未挂载"
|
||
fi
|
||
|
||
# 清理文件和目录
|
||
info "清理bitifs相关文件和配置..."
|
||
rm -f /usr/local/bin/bitifs 2>/dev/null
|
||
rm -rf /etc/bitifs 2>/dev/null
|
||
|
||
# 删除挂载目录(可选)
|
||
if [ -d "$MOUNT_PATH" ]; then
|
||
read -p "$(info "是否删除挂载目录 $MOUNT_PATH?(y/n): ")" delete_dir
|
||
if [ "$delete_dir" = "y" ]; then
|
||
rm -rf "$MOUNT_PATH" && info "已删除挂载目录 $MOUNT_PATH" || \
|
||
warn "删除挂载目录失败,可能是权限不足"
|
||
fi
|
||
fi
|
||
|
||
# 清理残留进程
|
||
info "清理残留进程..."
|
||
pkill -f "bitifs $BUCKET_NAME" 2>/dev/null && warn "已终止残留的bitifs进程"
|
||
|
||
# 完成信息
|
||
title "================================================"
|
||
info "卸载完成!"
|
||
info ""
|
||
info "已清理以下内容:"
|
||
info "1. bitifs-mount.service 服务"
|
||
info "2. /usr/local/bin/bitifs 客户端"
|
||
info "3. /etc/bitifs/ 配置目录"
|
||
[ "$delete_dir" = "y" ] && info "4. 挂载目录 $MOUNT_PATH"
|
||
info ""
|
||
info "如需重新安装,请运行安装脚本: install-bitiful-oss.sh"
|
||
title "================================================" |