数据备份shell

#!/bin/bash
while getopts ":u:p:" OPT;do
    case $OPT in
        u)
            user=$OPTARG
            ;;
        p)
            password=$OPTARG
            ;;
        *)
            echo "Usage: mysqlbackup -u username -p passowrd"
            ;;
    esac
done
mysqldump=$(which mysqldump)
innobackupex=$(which innobackupex)
python=$(which python)
tar=$(which tar)
date=$(date +%y-%m-%d-%H-%M-%S)
pip=$(which pip)
host=$(hostname)
ossupload='/jf/scripts/backup/oss.py'
tardir='/jf/backup'
backupdir='/jf/backup/mysql'
tarname=${host}-${date}.tar.gz
timedir=$(date +%y-%m)
ossbackupdir=/mnt/ossfs/mysql/${timedir}/${host}
[ ! -d  $backupdir ] && mkdir -p $backupdir
[ ! -d  $ossbackupdir ] && mkdir -p $ossbackupdir
#全备
$innobackupex --user=$user --password=$password  --slave-info  --safe-slave-backup $backupdir
if [[ $? -ne 0 ]]; then
    echo "Full command execution failed"
    exit
fi
#备份表结构
$mysqldump -u$user -p$password -A -B -d --single-transaction > $backupdir/backup-d-$date.sql
if [[ $? -ne 0 ]]; then
    echo "The backup table structure command failed to execute"
    exit
fi
cd /jf/backup/
#打包压缩
$tar -zcvf ${ossbackupdir}/$tarname mysql > /dev/null
if [[ $? -ne 0 ]]; then
    echo "tar /jf/backup/mysql file failed"
    exit
fi
#判断备份包大小是否正常
size=$(ls -l ${ossbackupdir}/$tarname | awk -F' ' '{print $5}')
minnum=$((1024*1024*1024*2))
if [[ ${size} -lt ${minnum}  ]]; then
    echo "Backup files are less than 2G, so backup is failed"
    exit
fi
rm -rf /jf/backup/mysql
if [[ $? -eq 0 ]]; then
    echo "MySQL backup sucessful and upload to oss sucessful"
fi
#上传至oss
# $pip install oss2
#$python $ossupload mysql/$(date +%y-%m)/$host/$tarname /jf/backup/$tarname
# $python $ossupload mysql/$(date +%y-%m)/$host/$tarname /jf/backup/$tarname &&rm -f $tarname
#备份保留15天
#/usr/bin/find $tardir -maxdepth 1 -type d -mtime +15|xargs rm -rf
#/usr/bin/find $tardir -maxdepth 1 -type f -mtime +15|xargs rm -rf
数据备份shell

数据备份shell