#!/bin/bash ################################# # Athor:DAVID # # Date:15/5/2013 # # About:mysql_bakup # ################################# USER=mysql //备份数据库实用的用户名 PASSWD=mysql //备份数据库实用的密码 DATE=`date +%Y-%m-%d` //当前时间 OLDDATE=`date +%Y-%m-%d -d '-10 days'` //本地备份保留时间 FTPOLDDATE=`date +%Y-%m-%d -d '-20 days'` //备份服务器备份保留时间 MYSQLDUMP=/usr/local/mysql/bin/mysqldump //mysql备份执行命令文件路径 SOCKET=/tmp/mysql.sock //进程文件存放目录 BACKDIR=/opt/data/db //本地备份目录 FTPHOST=132.96.77.123 //FTP主机 FTPUSER=webbak //用户名 FTPPASS=webbak //密码 [ -d ${BACKDIR} ] || mkdir -p ${BACKDIR} //判断备份目录是否存在,如果不存在则创建 [ -d ${BACKDIR}/${DATE} ] || mkdir ${BACKDIR}/${DATE} //判断当前时间目录是否存在,如果不存在则创建 [ ! -d ${BACKDIR}/${OLDDATE} ] || rm -rf ${BACKDIR}/${OLDDATE} //判断10天前旧目录是否存在,存在则删除 for DBNAME in mysql cms manager //要进行备份的数据库名称 do ${MYSQLDUMP} -S ${SOCKET} -u ${USER} -p${PASSWD} --opt ${DBNAME} | gzip > ${BACKDIR}/${DATE}/${DBNAME}-backup-${DATE}.sql.gz //进行备份 echo "${DBNAME} has been backup successful." sleep 5 done cd ${BACKDIR}/${DATE} ftp -i -n -v <