#!/bin/bash # ================================================ # 缤纷云对象存储一键挂载脚本 # 功能:自动安装bitifs客户端,配置凭证并挂载对象存储 # 特性: # 1. 交互式输入AK/SK、桶名和挂载路径 # 2. 自动创建不存在的挂载目录 # 3. 自动配置systemd服务实现开机挂载 # 4. 详细的执行日志输出 # 版本: 1.1 作者 https://blog.hx99.net https://gitee.com/cncsrf/bitiful-oss # ================================================ # 颜色定义 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" } title() { echo -e "${BLUE}$1${NC}" } # 欢迎信息 title "================================================" title " 缤纷云对象存储一键挂载脚本" title "================================================" info " 本脚本将帮助您完成以下操作:" info " 1. 下载并安装bitifs客户端" info " 2. 配置访问凭证(AK/SK)" info " 3. 挂载指定存储桶到本地目录" info " 4. 配置开机自动挂载" warn " 注意:此操作需要root权限执行" title "================================================" echo "" # 检查root权限 if [ "$(id -u)" != "0" ]; then error "此脚本需要root权限执行!" exit 1 fi # 日志函数 log() { info "[$(date '+%Y-%m-%d %H:%M:%S')] $1" } # 交互式输入配置信息 read -p "$(info '请输入Access Key ID: ')" AWS_ACCESS_KEY_ID read -p "$(info '请输入Secret Access Key: ')" AWS_SECRET_ACCESS_KEY read -p "$(info '请输入要挂载的存储桶名称: ')" BUCKET_NAME read -p "$(info '请输入本地挂载路径(默认:/data/binfen-mount): ')" MOUNT_PATH # 设置默认挂载路径 [ -z "$MOUNT_PATH" ] && MOUNT_PATH="/data/binfen-mount" # 验证挂载路径格式 if [[ "$MOUNT_PATH" != /* ]]; then error "挂载路径必须是绝对路径(以/开头)" exit 1 fi # 检查挂载路径是否存在 if [ ! -d "$MOUNT_PATH" ]; then warn "挂载路径 $MOUNT_PATH 不存在,正在创建..." mkdir -p "$MOUNT_PATH" || { error "创建目录失败! 请检查路径权限" exit 1 } log "目录创建成功: $MOUNT_PATH" fi # 安装bitifs log "开始安装bitifs客户端..." yum install wget -y && wget -O /usr/local/bin/bitifs https://fanfan.s3.bitiful.net/bitifs_linux_amd64 || { error "bitifs下载失败!" exit 1 } chmod +x /usr/local/bin/bitifs log "bitifs安装完成" # 配置凭证 log "正在配置访问凭证..." mkdir -p /etc/bitifs && chmod 700 /etc/bitifs cat > /etc/bitifs/credentials.env < /etc/systemd/system/bitifs-mount.service <