1.在生产服务器下面,在 /mydata/mysqlBackUp/bin/
目录下新建backup.sh文件,文件内容如下:
#!/bin/bash
DATE=`date +%Y-%m-%d`
cd /home/backup/
##配置全局变量
#数据库信息
MYSQL="mysql -uroot -p123456 -hlocalhost"
#数据库用户名
dbuser="root"
#数据库密码
dbpasswd="123456"
#数据库名
dbname="mysql"
#日志备份路径
logpath="/home/backup"
#数据备份路径
datapath="/home/backup"
##开始备份时间
DAT=`date +%H:%M:%S`
echo "===========$DATE========">>${logpath}/backup.log
echo "start bak:$DAT">> ${logpath}/backup.log
##删除7天之前的备份文件
find /home/backup/ -mtime +6 -name "*.bz2"|xargs rm -f
## 循环备份每个数据库里面的表
cat $dbname|while read db
do
##开通下面两个可支持重跑
#rm -f $DATE.$db.bz2
rm -rf $db
mkdir "$db"
cd $db
for table in `$MYSQL $db -e "show tables"|sed '1d'`
do
#echo "$table" > $table.sql
mysqldump -u$dbuser -p$dbpasswd $db $table > $table.sql;
done
ct=`ls|wc -l`
cd ../
echo "$db count: $ct" >> ${logpath}/backup.log
tar -jcvf $DATE.$db.bz2 $db
# rm -rf $db
done
DAT=`date +%H:%M:%S`
echo "end time : $DAT" >> ${logpath}/backup.log
echo " " >> ${logpath}/backup.log
2.设置定时备份任务: crontab -e
00 03 * * * /mydata/mysqlBackUp/bin/backup.sh
3.查看定时备份任务: crontab -l
说明:
-
备份压缩文件存放目录: /mydata/mysqlBackUp
-
备份文件命名规则: {备份日期}.{数据库名}.bz2
-
备份最新sql文件存放目录: /mydata/mysqlBackUp/{数据库名}
-
备份日志文件: /mydata/mysqlBackUp/log/backup.log