mirror of
https://gitee.com/cncsrf/bitiful-oss
synced 2026-04-07 14:33:17 +08:00
27
README.md
Normal file
27
README.md
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# 缤纷云Bitiful OSS Centos7 一键挂载脚本
|
||||||
|
|
||||||
|
## 脚本功能简介
|
||||||
|
|
||||||
|
这是一个用于快速挂载缤纷云对象存储(Bitiful OSS)的自动化脚本,通过BitIFS客户端将对象存储挂载到本地文件系统。
|
||||||
|
|
||||||
|
## 主要特性
|
||||||
|
|
||||||
|
- 🚀 **一键式安装与配置** - 自动完成BitIFS客户端的下载安装
|
||||||
|
- 🔑 **交互式凭证配置** - 引导用户输入AK/SK等必要信息
|
||||||
|
- 📁 **自动目录创建** - 自动创建不存在的挂载目录
|
||||||
|
- 🔄 **开机自动挂载** - 通过systemd服务实现开机自动挂载
|
||||||
|
- 📝 **详细执行日志** - 提供彩色化的执行过程反馈
|
||||||
|
|
||||||
|
## 使用说明
|
||||||
|
|
||||||
|
### 前提条件
|
||||||
|
|
||||||
|
- Centos7操作系统
|
||||||
|
- root权限
|
||||||
|
- wget工具(用于下载客户端)
|
||||||
|
|
||||||
|
### 使用方法
|
||||||
|
|
||||||
|
```bash
|
||||||
|
- chmod +x bitiful-oss.sh
|
||||||
|
- ./bitiful-oss.sh
|
||||||
156
bitiful-oss.sh
Normal file
156
bitiful-oss.sh
Normal file
@@ -0,0 +1,156 @@
|
|||||||
|
#!/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 <<EOF
|
||||||
|
export AWS_ACCESS_KEY_ID="$AWS_ACCESS_KEY_ID"
|
||||||
|
export AWS_SECRET_ACCESS_KEY="$AWS_SECRET_ACCESS_KEY"
|
||||||
|
EOF
|
||||||
|
chmod 600 /etc/bitifs/credentials.env
|
||||||
|
log "凭证配置完成"
|
||||||
|
|
||||||
|
# 测试挂载
|
||||||
|
log "正在测试挂载..."
|
||||||
|
source /etc/bitifs/credentials.env
|
||||||
|
/usr/local/bin/bitifs "$BUCKET_NAME" "$MOUNT_PATH" && {
|
||||||
|
log "测试挂载成功"
|
||||||
|
umount "$MOUNT_PATH"
|
||||||
|
} || {
|
||||||
|
error "测试挂载失败!"
|
||||||
|
warn "可能原因:"
|
||||||
|
info "1. AK/SK不正确"
|
||||||
|
info "2. 存储桶不存在"
|
||||||
|
info "3. 网络连接问题"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# 配置开机挂载
|
||||||
|
log "正在配置开机自动挂载..."
|
||||||
|
cat > /etc/systemd/system/bitifs-mount.service <<EOF
|
||||||
|
[Unit]
|
||||||
|
Description=Mount BitIFS Object Storage ($BUCKET_NAME to $MOUNT_PATH)
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
ExecStart=/bin/bash -c 'source /etc/bitifs/credentials.env && /usr/local/bin/bitifs $BUCKET_NAME $MOUNT_PATH'
|
||||||
|
ExecStop=/bin/umount $MOUNT_PATH
|
||||||
|
RemainAfterExit=yes
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
|
||||||
|
chmod 644 /etc/systemd/system/bitifs-mount.service
|
||||||
|
systemctl daemon-reload
|
||||||
|
systemctl enable bitifs-mount.service
|
||||||
|
systemctl start bitifs-mount.service
|
||||||
|
|
||||||
|
log "开机挂载配置完成"
|
||||||
|
|
||||||
|
# 最终状态检查
|
||||||
|
log "挂载状态:"
|
||||||
|
mount | grep "$MOUNT_PATH" || {
|
||||||
|
error "挂载点未找到,可能有配置错误"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
title "================================================"
|
||||||
|
log "挂载配置完成!"
|
||||||
|
info "存储桶: $BUCKET_NAME"
|
||||||
|
info "挂载点: $MOUNT_PATH"
|
||||||
|
warn "请检查以上信息是否正确"
|
||||||
|
title "================================================"
|
||||||
Reference in New Issue
Block a user