logo
tt's Note
  • 运维
    • 数据库
    • linux
    • vpn
    • 日志
    • 中间件
    • 服务
    • 监控
    • shell
    • windows
    • 语言
    • 云服务
    • 其他
  • 开发
    • 工具
  • 软件
    • 浏览器
    • 多端
    • win
    • mac
    • 网站
  • 项目
    • 效率工具
    • 兴趣
  • 脚本
    • jenkins
    云服务概览
    阿里云oss授权单目录
    ossfs&s3fs
    阿里云ossutil
    aws-s3
    亚马逊s3fs
    七牛oss
    上一页aws-s3下一页七牛oss

    #亚马逊s3fs

    开源地址

    #挂载步骤

    # 安装
    yum install -y epel-release
    yum install -y s3fs-fuse
    
    mkdir -p /root/.aws/
    
    echo <yourAccessKeyId>:<yourAccessKeySecret> > /root/.aws/credentials 
    # 挂载
    s3fs <BucketName> /data/s3/backup -o url=https://s3.<Endpoint>.amazonaws.com -o endpoint=<Endpoint> -o use_path_request_style -o sigv4 -o passwd_file=/root/.aws/credentials

    #自动挂载脚本

    #!/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}