#!/bin/bash
BucketName=
Endpoint=
AccessKeyId=
AccessKeySecret=
mount_dir=/data/s3/${BucketName}
workdir=/data/s3-config
mkdir -p ${mount_dir} ${workdir} && cd ${workdir}
install_s3fs() {
if command -v s3fs > /dev/null 2>&1; then
echo "s3fs 已经安装"
else
yum install -y epel-release
yum install -y s3fs-fuse
fi
}
add_cron() {
# 添加开机启动
start_script=/etc/rc.d/rc.local
touch ${start_script}
echo "检测是否添加开机启动"
if [ $(cat ${start_script} | grep "s3 ${BucketName} start" | wc -l ) -eq 0 ];then
echo "# s3 ${BucketName} start" >> ${start_script}
echo "/bin/sh /data/s3-config/${BucketName}.sh" >> ${start_script}
else
echo "已经添加开机启动"
fi
chmod 755 ${start_script}
}
check_s3fs() {
# 判断是否已经挂载
already_mount_buckets=$(df -h|grep s3fs| awk '{print $6}'|awk -F '/' '{print $4}')
for already_mount_bucket in ${already_mount_buckets};do
if [ "${BucketName}"x == "${already_mount_bucket}"x ];then return 1;fi
done
}
main() {
check_s3fs || (echo "已经挂载${BucketName}, 退出" && df -h && exit 0)
# 安装s3fs
install_s3fs
# 添加开机任务
add_cron
# 配置账号访问信息。
echo ${AccessKeyId}:${AccessKeySecret} > ${workdir}/passwd-s3fs-$BucketName
chmod 600 passwd-s3fs-$BucketName
# 将Bucket挂载到指定目录。
/usr/bin/s3fs ${BucketName} ${mount_dir} -o passwd_file=${workdir}/passwd-s3fs-$BucketName -o url=https://s3.${Endpoint}.amazonaws.com -o endpoint=${Endpoint} -o use_path_request_style -o sigv4
# 查看挂载结果
df -h
}
main
# 卸载
# fusermount -u ${mount_dir}