清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
#!/bin/bash
#Author Castle Liu
#Date 2014-05-28
_BACKUP_DIR='/data/backup/IB/'
_BACKUP_NAME=IB`date +"%Y%m%d%H"`
_WORKING_DIR=${_BACKUP_DIR}${_BACKUP_NAME}
_TMP_F='/tmp/backUpInforBright'
_DBUSER=''
_DBPASSWD=''
_DB='PE_DW'
_HEADER='date +"%F %T"'
_QUERY_CMD='mysql-ib'
_BACKUP_CMD='/usr/local/infobright/bin/mysqldump'
####functions###
#help
#function used to print help info.
help() {
cat <<EOF
-d how many days ago's file you want to delete on backup_dir.,default 7;
-h print help information.
EOF
}
#parse_args
#function to parse paremeters.
#do pass in the args from shell,for example:parse_args $*
parse_args(){
while getopts "ht:d:s:" arg
do
case ${arg} in
h)
help
exit 0
;;
d)
export _DAY=${OPTARG}
;;
?)
echo "Unknown argument,exit..."
exit 1
;;
esac
done
}
#backUpTable
#backup the table
backUpTable(){
tableName=$1
echo "`eval ${_HEADER}` Start backing up table ${tableName}..."|tee -a ${_TMP_F}
${_BACKUP_CMD} -u${_DBUSER} -p${_DBPASSWD} --lock-tables=false ${_DB} ${tableName} > ${_WORKING_DIR}/${tableName}.sql|tee -a ${_TMP_F}
fileSize=`ls -lh ${_WORKING_DIR}/${tableName}.sql|awk '{print $5}'`
echo "`eval ${_HEADER}` End backing up table:${tableName},Size:${fileSize}."|tee -a ${_TMP_F}
}
###main###
echo "`eval ${_HEADER}` InforBright backUp begin..."|tee ${_TMP_F}
parse_args $*
#Delete files on backup dir.
_DAY=${_DAY:-7}
#find ${_BACKUP_DIR} -mtime 7 -exec rm -rf {} \;
#echo ${_DAY}
#backup inforbright
mkdir -p ${_WORKING_DIR}
${_QUERY_CMD} -u${_DBUSER} -p${_DBPASSWD} -e "select table_name from information_schema.tables where table_schema='PE_DW';"|awk 'NR>2{print}' > running.tmp
cat ${_TMP_F}.tmp|while read table
do
if [[ ${table} != "EOF" ]];then
#echo ${table}
backUpTable ${table}
fi
done
cd ${_BACKUP_DIR}
tar -czvf ${_BACKUP_NAME}.tar.gz ${_BACKUP_NAME}
rm -rf ${_BACKUP_NAME}
echo "`eval ${_HEADER}` InforBright backUp end."|tee -a ${_TMP_F}
#send a email to acknowage backup info
pmail "***ALIYUN_INFORBRIGHT_BACKUP_REPORT***" "${_TMP_F}"