#!/bin/sh
mysqldump="/mysql/bin/mysqldump"
mysql_user='admin'
mysql_password='admin'
backup_dir="/app/dbbak/zb_backup"
mysql_host='10.10.10.10'
mysql_port="3330"
table_list="/app/dbbak/zb_backup/backup_table_list.txt"
log_file="/app/dbbak/zb_backup/backup.log"
while read -r line
do
database_name=`echo ${line} | awk '{print $1}'`
table_name=`echo ${line} | awk '{print $2}'`
echo "`date '+%Y-%m-%d %H:%M'` Start backup DATABASE: ${database_name} TABLE: ${table_name} " >> ${log_file}
${mysqldump} --single-transaction -h${mysql_host} --triggers --routines --events --set-gtid-purged=OFF \
-P${mysql_port} -u${mysql_user} -p${mysql_password} ${database_name} ${table_name} |gzip > ${backup_dir}/${database_name}.${table_name}.sql.gz
# 注意写其他的脚本时喜欢把标准输出和错误输出到日志文件中,在使用mysqldump 时标准输出就不能输出到日志了。
if [ $? -eq 0 ];then
echo "`date '+%Y-%m-%d %H:%M'` DATABASE: ${database_name} TABLE: ${table_name} backup over. " >> ${log_file}
else
echo "`date '+%Y-%m-%d %H:%M'` DATABASE: ${database_name} TABLE: ${table_name} backup fail. " >> ${log_file}
continue
fi
done < ${table_list}
#table_list.txt格式
database_name table_name