库文件备份

如下每周备份一次、写一个shell脚本

#!/bin/bash date_now=`date +%Y_%m_%d_%H%M%S`
mysqldump -uroot -plixiaoli --flush-logs --master-data=2 maweiqing>/home/backup/${date_now}.sql &&
zip -r /home/backup/${date_now}.zip /home/backup/${date_now}.sql
rm -f /home/backup/${date_now}.sql


  1. 获取当前日期,作为库文件备份的文件名

  2. mysqldump命令对数据库maweiqing备份到20151030.sql中

  3. zip命令对文件压个缩。

  4. rm命令删除sql文件


二进制日志备份

二进制文件备份,我建议早晚各一次了。

#!/bin/bash date_now=`date +%Y_%m_%_d_%H%M%S`
filename=mysql-bin
filesuffix_max=0 filesuffix_lastbutone=0 mysqlpath=/var/lib/mysql/
backuppath=/home/backup/mysqlbinarylog/
mysqladmin -uroot -plixiaoli flush-logs && for fname in `ls $mysqlpath` do filesuffix=${fname##*.} isnum=`expr match ${filesuffix} '[0-9][0-9]*$'` if [ $isnum ] && [ $isnum -ne 0 ] && [ $filesuffix -gt $filesuffix_max ] then filesuffix_lastbutone=$filesuffix_max filesuffix_max=$filesuffix fi done &&
filefullname=${filename}.${filesuffix_lastbutone} cp $mysqlpath$filefullname $backuppath &&
zip ${backuppath}${date_now}${filefullname}.zip $backuppath$filefullname && echo "done"


1. 注意,二进制日志备份,需要mysql开启二进制日志。 
2. 其文件路径是在/var/lib/mysql/路径下面。 
3. mysqladmin 命令进行二进制日志备份。