版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章
原始出处 、作者信息和本声明。否则将追究法律责任。
http://liguxk.blog.51cto.com/129038/288461
|
实现功能:定期备份数据库,删除过期备份,通过ftp方式实现异地备份。
使用shell脚本配合crontab进行自动化备份。
备份环境:
mysql replication架构中的从机上进行备份
采用mysqlhotcopy原因:mysqlhotcopy方式,该方式在复制前先进行锁表,保证数据在同一刻一致性,复制完成后自动解锁。
在从机上备份的原因:在从机上执行,不影响WEB对主库的写操作。mysql replication 遇到锁表后暂停,当完成后根据relay-log日志继续与主库同步,同步正常
#!/bin/bash
#this script for backup datebase #获取当前日期 TODAY=$('date' +'%Y%m%d') #设定过期时间为7天 EXPIRED=$('date' -d '-7 days' +'%Y%m%d') STOREDIR=/home/bak/ MYSQLHOTCOPY=/usr/local/mysql/bin/mysqlhotcopy ####################### Backup and compress databases ################################### #需要备份的数据库列表 database=(db1 db2 db3 db4 …… dnn) echo "Copy Database start time :" > /info.txt echo $('date' '+%Y-%m-%d %H:%M:%S') >> /info.txt echo "" >> /info.txt echo "File size as follows" >> /info.txt rm -rf /home/bak/* for i in ${database[*]} do $MYSQLHOTCOPY -u=用户名 -p=密码 $i /home/bak/ du -sh /home/bak/$i >> /info.txt done echo "" >> /info.txt echo "" >> /info.txt echo "Total sizes:" >> /info.txt ####################### Tar databases ############################################### du -sh /home/bak >> /info.txt cd /home #对备份文件进行压缩 tar czf bak.tar.gz bak du -sh /home/bak.tar.gz >> /info.txt echo "" >> /info.txt echo "Upload file time :" >>/info.txt echo $('date' '+%Y-%m-%d %H:%M:%S') >> /info.txt ######################## Upload file to ftp server ###################################### ftp -v -n ftp服务器IP << END user ftp用户名 密码 binary hash #创建新的日期文件夹 mkdir $TODAY cd $TODAY lcd /home prompt #删除过期数据及文件夹 mput bak.tar.gz cd /$EXPIRED mdelete bak.tar.gz cd ../ rmdir $EXPIRED close bye END ###################### Send mail Report ################################################## echo "" >> /info.txt echo "Complete time is:" >> /info.txt echo $('date' '+%Y-%m-%d %H:%M:%S') >> /info.txt mail -s "DataBase backup Report" liguxk@126.com < /info.txt
本文出自 “
寒.枫” 博客,请务必保留此出处
http://liguxk.blog.51cto.com/129038/288461
本文出自 51CTO.COM技术博客
|
本文转自holy2009 51CTO博客,原文链接:http://blog.51cto.com/holy2010/310773