shell脚本---实现ceph数据的备份、恢复

脚本使用说明:

ceph迁移
导出
1、下载s3cmd:yum install s3cmd -y
2、修改配置文件,创建 /root/.s3cfg文件到ceph主节点的root目录下,修改IP:Port以及账户信息
3、执行ceph_export.sh 脚本
导入
1、迁移ceph_data.tar.gz到目标机器
2、下载s3cmd:yum install s3cmd -y
3、修改配置文件,创建 /root/.s3cfg文件到ceph主节点的root目录下,修改IP:Port以及账户信息
注:确保配置文件账户信息与项目所用的ceph的配置一致
内容参考 如下:
vim /root/.s3cfg
[default]
access_key = 4BGJ6G1IYW09KO2AKDUE
secret_key = 1DFvpB84BvdatzBrtw4bfAyZpA5DZOahxUoXHD7a
host_base = 127.0.0.1:8899
host_bucket = 127.0.0.1:8899/%(bucket)
use_https = False
4、通过S3Browser客户端创建相应的桶,确保用户配置与Apollo的配置一致
5、执行ceph_import.sh jio本

脚本内容:

#!/bin/bash
function download(){
    array=`s3cmd ls  | cut -d "/" -f 3`

    cd ${backup_path}/${date}
    for element in ${array[@]}
        do
          mkdir $element
          s3cmd get s3://${element}/"*" ${backup_path}/${date}/${element}/
          echo "bucket ${element} 下载完成"
        done

    cd ${backup_path}
    tar -zcf ceph_data_${date}.tar.gz ${date}

    sleep 5
}

function check(){

        if [ `rpm -qa|grep s3cmd >/dev/null && echo $?` != 0 ];then
                yum install s3cmd
                echo "s3cmd 安装完成..."
        else
                echo "s3cmd 已经正常安装!!"
        fi
}

#备份路径,需要根据具体修改
backup_path="/data1/ceph_data/ceph_bak/data"
##备份日志路径,需要根据具体修改
backup_log_path="/data1/ceph_data/ceph_bak/logs"
date=$(date +%Y-%m-%d_%H-%M-%S)
backup_log="${backup_log_path}/ceph_export_${date}.log"
if [ ! -d ${backup_path}/${date} ];then
  mkdir -p {$backup_path/${date},$backup_log_path}
else
  echo "========${date}:文件夹已经存在=======" >> ${backup_log}
fi

echo "开始检查s3cmd"  >> ${backup_log}
check
echo "开始下载ceph数据"  >> ${backup_log}
download

附上恢复脚本:

#!/bin/bash
#使用前需要编写好需要恢复的桶名到list文件中,bucket_list.txt
function import(){
    while read line
        do s3cmd mb s3://${line}
#根据桶名的列表bucket_list.txt进行创建桶
    done < bucket_list.txt
    array=`s3cmd ls  | cut -d "/" -f 3`
    cd ${1}
    for element in ${array[@]}
        do
          s3cmd put ${element}/*  s3://${element}/
          echo "bucket ${element} 导入完成"
        done

    sleep 5
}

function check(){

        if [ `rpm -qa|grep s3cmd >/dev/null && echo $?` != 0 ];then
                yum install s3cmd
                echo "s3cmd 安装完成..."
        else
                echo "s3cmd 已经正常安装!!"
        fi
}

read -p "确定s3cmd是否正确安装?(y/n):" judge
if [ $judge = 'y' -o $judge = 'Y' ];then
        read -p "请输入ceph数据存储的位置 : " floder
        echo "开始导入..."

        import ${floder}

else
        echo "检查安装"
        check
        read -p "请输入ceph数据存储的位置 : " floder
        echo "开始导入..."
        import ${floder}
fi

其中bucket_list.txt内容举例如下:

[root@ceph-te-3p193 opt]# cat bucket_list.txt 
casejoin
dailyreport
dw-finger-image
dw-portrait-image
dw-url
eventwarning
infopublish
infopublishtest
monitor
photo
taskmanager
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值