mysql备份脚本(线上使用的)

线上使用的mysql备份脚本,使用mysqldump备份,在mysql master上使用的。

在本地备份完成之后,同时传输一份备份文件至远程的ftp服务器上,实现异地备份.
本机保存20天的备份文件, 远端保存60天的备份文件.

脚本在服务器上运行了快两年了,很稳定.

我的nagios也很忠诚,哈哈.


# 建立备份用户.

  
  
  
  
  1. mysql> grant select,lock tables,reload,super,file,show view on *.* to 'mysqlbackup'@'localhost' identified by 'mysql_ritto'
  2. mysql> flush privileges


# 脚本如下.

  
  
  
  
  1. #!/bin/bash 
  2.  
  3. USERNAME=mysqlbackup 
  4. PASSWORD=mysql_ritto 
  5.  
  6. DATE=`date +%Y-%m-%d` 
  7. OLDDATE=`date +%Y-%m-%d -d '-20 days'
  8. FTPOLDDATE=`date +%Y-%m-%d -d '-60 days'

  9.  
  10. MYSQL=/usr/local/mysql/bin/mysql 
  11. MYSQLDUMP=/usr/local/mysql/bin/mysqldump 
  12. MYSQLADMIN=/usr/local/mysql/bin/mysqladmin 
  13. SOCKET=/tmp/mysql.sock 
  14.  
  15. BACKDIR=/data/backup/db 
  16. [ -d ${BACKDIR} ] || mkdir -p ${BACKDIR} 
  17. [ -d ${BACKDIR}/${DATE} ] || mkdir ${BACKDIR}/${DATE
  18. [ ! -d ${BACKDIR}/${OLDDATE} ] || rm -rf ${BACKDIR}/${OLDDATE} 
  19.  
  20. for DBNAME in mysql db1 db2 db3 
  21. do 
  22.    ${MYSQLDUMP} --opt --master-data=2 --tz-utc=true -u${USERNAME} -p${PASSWORD} -S${SOCKET} ${DBNAME} | gzip > ${BACKDIR}/${DATE}/${DBNAME}-backup-${DATE}.s l.gz 
  23.    logger "${DBNAME} has been backup successful - $DATE" 
  24.    /bin/sleep 5 
  25. done 
  26.  
  27.  
  28. HOST=10.1.2.22 
  29. FTP_USERNAME=db1 
  30. FTP_PASSWORD=db1_ritto 
  31.  
  32. cd ${BACKDIR}/${DATE
  33.  
  34. ftp -i -n -v << ! 
  35. open ${HOST} 
  36. user ${FTP_USERNAME} ${FTP_PASSWORD} 
  37. bin 
  38. cd ${FTPOLDDATE} 
  39. mdelete * 
  40. cd .. 
  41. rmdir ${FTPOLDDATE} 
  42. mkdir ${DATE
  43. cd ${DATE
  44. mput * 
  45. bye 


# 备份后的目录结构是这个样子的. 

  
  
  
  
  1. [root@db1 db]# ls 
  2. 2011-11-10  2011-11-12  2011-11-14  2011-11-16  2011-11-18  2011-11-20  2011-11-22  2011-11-24  2011-11-26  2011-11-28 
  3. 2011-11-11  2011-11-13  2011-11-15  2011-11-17  2011-11-19  2011-11-21  2011-11-23  2011-11-25  2011-11-27  2011-11-29 
  4. [root@db1 db]# ls -lhtr 2011-11-29/ 
  5. total 3.1G 
  6. -rw-r--r-- 1 root root 133K Nov 29 02:01 mysql-backup-2011-11-29.sql.gz 
  7. -rw-r--r-- 1 root root 1.5G Nov 29 02:06 db1-backup-2011-11-29.sql.gz 
  8. -rw-r--r-- 1 root root  35M Nov 29 02:06 db2-backup-2011-11-29.sql.gz 

 

你可能感兴趣的:(mysql,数据库,master,mysql备份,休闲)