mysql备份脚本(线上使用的)
mysql备份脚本
备份脚本(线上使用的
线上使用的)
2011-11-30 15:01:20
标签:mysql 数据库 mysql备份 master 休闲
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责
任。http://ritto.blog.51cto.com/427838/729851
线上使用的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 'mysq
l_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.
11. MYSQL=/usr/local/mysql/bin/mysql
12. MYSQLDUMP=/usr/local/mysql/bin/mysqldump
13. MYSQLADMIN=/usr/local/mysql/bin/mysqladmin
14. SOCKET=/tmp/mysql.sock
15.
16. BACKDIR=/data/backup/db
17. [ -d ${BACKDIR} ] || mkdir -p ${BACKDIR}
18. [ -d ${BACKDIR}/${DATE} ] || mkdir ${BACKDIR}/${DATE}
19. [ ! -d ${BACKDIR}/${OLDDATE} ] || rm -rf ${BACKDIR}/${OLDDATE}
20.
21. for DBNAME in mysql db1 db2 db3
22. do
23. ${MYSQLDUMP} --opt --master-data=2 --tz-utc=true -u${USERNAME} -p${PASSWORD} -S${SOCKET} ${DBNAME} | gzip > ${BA
CKDIR}/${DATE}/${DBNAME}-backup-${DATE}.s l.gz
24. logger "${DBNAME} has been backup successful - $DATE"
25. /bin/sleep 5
26. done
27.
28.
29. HOST=10.1.2.22
30. FTP_USERNAME=db1
31. FTP_PASSWORD=db1_ritto
32.
33. cd ${BACKDIR}/${DATE}
34.
35. ftp -i -n -v << !
36. open ${HOST}
37. user ${FTP_USERNAME} ${FTP_PASSWORD}
38. bin
39. cd ${FTPOLDDATE}
40. mdelete *
41. cd ..
42. rmdir ${FTPOLDDATE}
43. mkdir ${DATE}
44. cd ${DATE}
45. mput *
46. bye
47. !
# 备份后的目录结构是这个样子的.
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
本文出自 “ritto's blog” 博客,请务必保留此出处http://ritto.blog.51cto.com/427838/729851