backup-all.sh

备份的内容包括:
- 备份运行服务的版本信息
- 备份数据库
- 备份全局配置文件
- 备份kubernetes配置文件

#!/bin/sh
#############################################
#
# 备份工具
# 
# 使用方法:将本脚本拷贝到平台服务器上,修改配置后执行
# 
#############################################

TMP_DIR=.tmp-96a2ae0c-d98f-11e7-8cce-eeb963e7b1e6

# 配置,请根据具体环境进行修改
#EPC_DATABASES="4a baby5 brook brook_cloudmaster brook_system4a_sh brook_bomc_sh chopper \
#crab ceph garp hancock nami kaido lucci lucci-province mgmt mihawk quartz tako workflow zebra shiliew eren oauth"
EPC_DATABASES="4a baby5 brook brook_cloudmaster ceph chopper crab eren garp hancock kaido lucci \
lucci-province mgmt mihawk nami oauth quartz shiliew tako workflow zebra"

MYSQL_USER=root
MYSQL_PASSWORD=Epic2wsx@WSX
MYSQL_HOST=10.10.10.19
MYSQL_PORT=30118
#########


#备份运行服务的版本信息
function backup_running_services() {
        echo "开始备份当前运行容器服务的版本号..."
        for name in `kubectl get pod | awk '{if(NR>1){ print $1 }}'`
        do
                image=`kubectl describe pod ${name} |grep Image:`
                printf "Name: %-40s \t %s \n" "$name" "$image" >> ${TMP_DIR}/services_version.txt
        done
        echo "备份完成..."

        echo "开始备份当前运行的K8s Pod..."
        kubectl get pod -o wide 1>>${TMP_DIR}/k8s_pods_info.txt
        echo "备份完成..."

        echo "开始备份当前运行的K8s Service..."
        kubectl get svc -o wide 1>>${TMP_DIR}/k8s_svc_info.txt
        echo "备份完成..."
}

#备份数据库
function backup_epc_databases() {
        echo "开始备份EPC数据库..."
        mkdir -p ${TMP_DIR}/databases
        for db in ${EPC_DATABASES}
        do
                mysqldump -u${MYSQL_USER} -p${MYSQL_PASSWORD} -h${MYSQL_HOST} -P${MYSQL_PORT} --databases \
                        $db > ${TMP_DIR}/databases/${db}.sql

                mysqldump -u${MYSQL_USER} -p${MYSQL_PASSWORD} -h${MYSQL_HOST} -P${MYSQL_PORT} --databases \
                        --no-data $db > ${TMP_DIR}/databases/${db}.schema.sql

        done
        echo "备份完成..."
}

#备份全局配置文件
function backup_epc_configs() {
        echo "开始备份EPC全局配置文件..."
        mkdir -p ${TMP_DIR}/usoppconfig
        mkdir -p ${TMP_DIR}/marmotconfig
        mkdir -p ${TMP_DIR}/nginxconfig
        cp -R /opt/data/config ${TMP_DIR}/config
        cp -R /opt/data/usopp/config/* ${TMP_DIR}/usoppconfig
        cp -R /opt/data/marmot/config/* ${TMP_DIR}/marmotconfig
        cp -R /opt/data/nginx/* ${TMP_DIR}/nginxconfig
        echo "备份完成..."
}

#备份kubernetes配置文件
function backup_kubernetes_yamls() {
        echo "开始备份kubernetes配置文件..."
        mkdir -p ${TMP_DIR}/install/kubernetes
        cp -R /opt/install/kubernetes/* ${TMP_DIR}/install/kubernetes
        echo "备份完成..."
}

# 初始化工作目录
function init_workspace() {
        rm -rf ${TMP_DIR}
        mkdir -p ${TMP_DIR}
}

# 清理工作目录
function clean_workspace() {
        rm -rf ${TMP_DIR}
}

echo "准备开始备份..."

init_workspace

backup_kubernetes_yamls

backup_epc_configs

backup_running_services

backup_epc_databases

date=`date "+%Y%m%d%H%M%S"`

CURRENT_DIR=`pwd`
cd ${TMP_DIR}/ && tar zcvf epic-backup.${date}.tar.gz ./* 
cd $CURRENT_DIR && mv ${TMP_DIR}/epic-backup.${date}.tar.gz .


clean_workspace

echo "全部备份完成..."