您的位置:首页 > 数据库 > MySQL

dump备份mysql表

2014-04-03 15:02 309 查看
Auth: Jin

Date: 20140403

Content:

#!/bin/bash -
### auth: Jin
### date: 20140403
### Desc: 备份输入库里的所有表,清理指定天前的备份文件
### Usage: ./dump_mysqltable.sh

BACKDIR=/data/BackupPC/database
BACKUPLOG=${BACKDIR}/dump_mysqltable.log
TODAY=`date +%F`
DELDAY=`date -d "7 day ago" +%F`
DUMPBIN=/usr/local/mysql/bin/mysqldump
MYSQLBIN=/usr/local/mysql/bin/mysql
IP=192.168.201.3
PORT=3311
USER=root
PASSWD=password

function log ()
{
echo " " >> $BACKUPLOG
echo "###########################" >> $BACKUPLOG
echo "`date +%F/%T` $1" >> $BACKUPLOG
echo "###########################" >> $BACKUPLOG
}

if [ $# -ne 1 ];then
printf 'Please give %s\n' databasename
exit 1;
else
DB=$1
DBDIR=${BACKDIR}/${DB}
BAKDIR=${DBDIR}/${TODAY}
DELDIR=${DBDIR}/${DELDAY}
mkdir -p ${BAKDIR}
fi

log START
TABS=`${MYSQLBIN} -h${IP} -P${PORT} -u${USER} -p${PASSWD} ${DB} -e"show tables\G"|grep -v row|awk '{print $2}'`
for TAB in ${TABS};do
${DUMPBIN} -h${IP} -P${PORT} -u${USER} -p${PASSWD} ${DB} $TAB --opt |gzip -9 > ${BAKDIR}/db-${TODAY}.community.${TAB}.sql.gz
if [ $? -eq 0 ];then
echo "$TAB backup OK" >> $BACKUPLOG
else
echo "$TAB backup Fail" >> $BACKUPLOG
fi
done
if [ -d ${DELDIR} ];then
rm -rf ${DELDIR}
if [ -d ${DELDIR} ]; then
echo "${DELDIR} delete Fail" >> $BACKUPLOG
else
echo "${DELDIR} delete OK" >> $BACKUPLOG
fi
else
echo "${DELDIR} is not exist" >> $BACKUPLOG
fi
log END
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: