网站应用与mysql自动完全增量备份
2013-05-09 16:09
731 查看
!#/bin/bash today=$(date +%Y%m%d) #设置日期 backupdir=/app/backup/app/ #设置备份目录 sqlbackupdir=/app/backup/sql/ #设置sql备份目录 #设置ftp登录信息 ftp_hostname=yang.test ftp_user=yang ftp_password=yang #设置mysql相关信息 sql_user=root sql_password=root databasename=mysql datadir=/usr/local/mysql/data #设置网站应用程序所在目录 appdir=/etc/httpd/wwwroot/ #查看是否存在30天前文件 #old=$(find -mtime 30 | wc -l) oldfilename=$(find $appbackupdir -mtime 30) olddbfimename=$(find $sqlbackupdir -mtime 30) #定义备份文件名 allbackup=$(date +%Y%m%d)_app_all.tgz inbackup=$(date +%Y%m%d)_app_incremental.tgz #sql备份文件名 sqlbackup=$(date +%Y%m%d)_sql_all.sql insqlbackup=$$(date +%Y%m%d)_sql_incremental.sql #应用是否有文件修改 todayebit=$(find $appdir -mtime 0) #30天前完整备份文件名 oldallbackup=/app/backup/app/$(date -d "30 days ago" +%Y%m%d)_app_all.tgz oldsqlbackup=/app/backup/sql/$(date -d "30 days ago" +%Y%m%d)_sql_all.sql #开始备份app echo "This is app's backup!" >> /usr/logs/backup.log echo "Start App Backup!" >> /usr/logs/backup.log echo "_________________________________________" >> /usr/logs/backup.log if [ -e $oldallbackup ];thin cd $backupdir rm -rf * tar -zcvf $inbackup $appdir -C $backupdir >> /usr/logs/backup.log >2&1 echo "________________________________________________________________" >> /usr/logs/backup.log else cd $backupdir if [ -e $todayedit ];thin #判断今天有没有更改文件 echo "new files is not today" >> /usr/logs/backup.log echo "________________________________________________________________" >> /usr/logs/backup.log >2&1 else tar zcvf $inbackup $todayebit -C $backupdir >> /usr/logs/backup.log #开始增量备份 echo "________________________________________________________________" >> /usr/logs/backup.log fi fi echo "Backup is success!" #开始备份mysql todayappbackup=$(find /app/backup/app -mtime 0) todaydbbackup=$(find /app/backup/sql -mtime 0) cd $sqlbackupdir #模式1:完整备份(不需要可注释) mysqldump --flush-logs -u -$sql_user -p $sql_password --quick $databasename > sqlbackup=$(date +%Y%m%d)_sql_all.sql #若数据量不是很大,则每天进行完整备份删除前一天备份 rm -rfv `find . -mtime 1` >> /usr/logs/backup.log #模式2:完整备份加增量备份 echo "This is sql's backup!" >> /usr/logs/backup.log echo "Start sql Backup!" >> /usr/logs/backup.log echo "_________________________________________" >> /usr/logs/backup.log cd $backupdir if [ -e $oldsqlbackup ];thin rm -rf * mysqldump --flush-logs -u -$sql_user -p $sql_password --quick $databasename > sqlbackup=$(date +%Y%m%d)_sql_all.sql echo "________________________________________________________________" >> /usr/logs/backup.log else mysqladmin flush-logs cd $datadir FILELIST=`cat mysql-bin.index` COUNTER=0 for file in $FILELIST do COUNTER=`expr $COUNTER + 1 ` done NextNum=0 for file in $FILELIST do base=`basename $file` NextNum=`expr $NextNum + 1` if [ $NextNum -eq $COUNTER ];then echo "skip lastest" else dest=$sqlbackupdir/$base if(test -e $dest) then echo "skip exist $base" else echo "copying $base" cp -rv $base $sqlbackupdir fi fi done fi #上传到ftp服务器 ftp $ftp_hostname -u $ftp_user -p $ftp_password << EOF put $todayappbackup put $todaydbbackup bye EOF赋予脚本可执行权限并加入计划任务即可进行mysql与app的自动备份
本文出自 “疯狂的蚂蚁” 博客,请务必保留此出处http://crazyants.blog.51cto.com/3402098/1196495
相关文章推荐
- mysql备份:完全备份和增量备份
- Webmin在RHEL5环境下的应用(二)自动备份MySQL
- MySQL 备份和恢复(三)Xtrabackup实现热备:完全备份+增量备份 推荐
- Mysql增量备份,完全恢复
- Mysql 增量备份脚本 innobackupex 增量备份 mysql自动备份
- mysql 网站程序自动备份脚本
- mysql完全+增量备份脚本
- MySQL之XtraBackup实现完全备份、增量备份、数据还原
- MySQL 实现每日全量备份,定时增量备份,自动恢复脚本
- MySQl备份恢复策略(完全+增量备份策略) ZT
- XtraBackup完全备份+增量备份文件 实现mysql热备份
- mysql系列之5--完全备份和增量备份
- MySQL完全备份、增量备份与恢复实例
- mysql自动增量备份的实例方法(本地备份与远程备份)
- windows PHP写的自动备份网站和MYSQL数据
- python+flask+html/css+mysql+BAE 打造CSDN简历自动生成系统(附网站完全源码)
- MySQl备份恢复策略(完全+增量备份策略)
- MYSQL完全与增量备份及恢复【转载改编】
- MySQL完全备份、增量备份与恢复[转]
- mysql(mariadb)定时自动热备份+增量+远程备份脚本