Linux下自动备份MySQL多个数据库


这里只提供脚本,和以前写的《Aix 5.3下自动备份Oracle多个实例》如出一辙,

如果要加入at或者crontab,请参考《CentOS5.4下自动备份MySQL数据库》这个大家再研究吧。

#MySQL User Information
USERNAME=数据库用户名(信息隐藏)
PASSWORD=数据库密码(信息隐藏)

#Back file
FILE_PREFIX=MySQL_

#FTP Server Information
FTP_SERV=FTP服务器(信息隐藏)
FTP_USER=FTP用户名(信息隐藏)
FTP_PASS=FTP密码(信息隐藏)
FTP_DIR=FTP目录(信息隐藏)

#Back directory
BACKUP_DIR=/opt/databack/MySQL

#MySQL directory
MYSQL_DIR=/usr/local/mysql/bin

#Date Format
DATE=`date +%Y%m%d`

#MySQL database
MYSQL1=第一个MySQL数据库名称(信息隐藏)
MYSQL2=第二个MySQL数据库名称(信息隐藏)
MYSQL3=第三个MySQL数据库名称(信息隐藏)

#Go to the backup directory
cd ${BACKUP_DIR}


#The first instance of the backup
if [ -f ${MYSQL1}_${DATE}.sql ]; then
echo MySQL Database ${MYSQL1} ${DATE} backup file already exists.
else
${MYSQL_DIR}/mysqldump -u ${USERNAME} -p${PASSWORD} ${MYSQL1} > ${MYSQL1}_${DATE}.sql
fi

#The second instance of the backup
if [ -f ${MYSQL2}_${DATE}.sql ]; then
echo MySQL Database ${MYSQL2} ${DATE} backup file already exists.
else
${MYSQL_DIR}/mysqldump -u ${USERNAME} -p${PASSWORD} ${MYSQL2} > ${MYSQL2}_${DATE}.sql
fi

#The third instance of the backup
if [ -f ${MYSQL3}_${DATE}.sql ]; then
echo MySQL Database ${MYSQL3} ${DATE} backup file already exists.
else
${MYSQL_DIR}/mysqldump -u ${USERNAME} -p${PASSWORD} ${MYSQL3} > ${MYSQL3}_${DATE}.sql
fi

#Compressed backup files
if [ -f ${FILE_PREFIX}${DATE}.tar.gz ]; then
echo `date +%Y-%m-%d` backup File already exists.
else
tar -cf ${FILE_PREFIX}${DATE}.tar.gz ${MYSQL1}_${DATE}.sql ${MYSQL2}_${DATE}.sql ${MYSQL3}_${DATE}.sql
fi

#Delete backup files
rm -rf ${MYSQL1}_${DATE}.sql ${MYSQL2}_${DATE}.sql ${MYSQL3}_${DATE}.sql

#Upload backup file
ftp -n $FTP_SERV <
user $FTP_USER $FTP_PASS
passive
binary
cd $FTP_DIR
put ${FILE_PREFIX}${DATE}.tar.gz ${FILE_PREFIX}${DATE}.tar.gz
AUTO_FTP

相关内容