码迷,mamicode.com
首页 > 数据库 > 详细

mysql数据库innodb存储引擎备份脚本

时间:2015-10-28 19:30:27      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:数据库备份   mysql   

#!/bin/bash
# author: movekj
# descript: backup mysql. full backup in sunday,incremental backup in other day.(for Innodb Store Engine)
# version: 0.0.1 
### DEFINE VARIABLES
PATH="/usr/java/latest/bin:/usr/lib64/qt-3.3/bin:/usr/java/latest/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
BackupUser=backuper
BackupPassword=.......1
WorkPath=/home/backup
LogPath=/home/backup/log/
FullBackupPath=/home/backup/full/
IncreBackupPath=/home/backup/incre/
DayOfWeek=`date +%u`
WeekOfYear=`date +%W`
Date=`date +%F`
### DEFINE FUNCTION
CreateBackupPath() {
if [ ! -d $1$2 ]
then
mkdir -p $1$2 && echo -e "`date` \033[31m$1$2 is create successful!\033[0m"#>> $LogPath$WeekOfYear/backup_$Date.log 
fi
}
DeleteOldBackup() {
BackupNum=`ls $1 | wc -l`
if [ $BackupNum -gt 3 ]
then
OldBackupNum=$[$BackupNum-3]
OldBackup=`ls -t $1 | tail -$OldBackupNum`    ### FIND OLD BACKUP
for I in $OldBackup
do
sudo rm -rf $1$I && echo "`date` $1$I is deleted!"  >> ${LogPath}backup_delete.log
done
fi
}
Delete() {
        DeleteOldBackup $FullBackupPath    ### DELETE OLD FULL BACKUP
        DeleteOldBackup $IncreBackupPath   ### DELETE OLD INCREMENTAL BACKUP
        #DeleteOldBackup $LogPath          ### DELETE OLD LOG FILE 
}
CreateBackupPath $LogPath $WeekOfYear      ### CREATE BACKUP LOG PATH
CreateBackupPath $FullBackupPath $WeekOfYear   ## CREATE FULL BACKUP PATH
CreateBackupPath $IncreBackupPath $WeekOfYear    ### CREATE INCREMENTAL BACKUP PATH
### START PROGRESS
if [ $DayOfWeek -eq 1 ]
then
innobackupex --user=$BackupUser --password=$BackupPassword $FullBackupPath$WeekOfYear 2>> $LogPath$WeekOfYear/Full_backup_$Date.log >> $LogPath$WeekOfYear/Full_backup_$Date.log
if [ $? -eq 0 ]
        then
Delete
        fi
elif [ $DayOfWeek -eq 2 ]
then
NewestFullBackup=`ls -t $FullBackupPath$WeekOfYear | head -1`    ### FIND NEWEST FULL BACKUP
innobackupex --user=$BackupUser --password=$BackupPassword --incremental --incremental-basedir=$FullBackupPath$WeekOfYear/$NewestFullBackup $IncreBackupPath$WeekOfYear 2>> $LogPath$WeekOfYear/Incre_backup_$Date.log >> $LogPath$WeekOfYear/Incre_backup_$Date.log
if [ $? -eq 0 ]
then 
Delete
fi
else
NewestIncreBackup=`ls -t $IncreBackupPath$WeekOfYear | head -1`    ### FIND NEWEST INCREMENTAL BACKUP
innobackupex --user=$BackupUser --password=$BackupPassword --incremental --incremental-basedir=$IncreBackupPath$WeekOfYear/$NewestIncreBackup $IncreBackupPath$WeekOfYear 2>> $LogPath$WeekOfYear/Incre_backup_$Date.log >> $LogPath$WeekOfYear/Incre_backup_$Date.log
if [ $? -eq 0 ]
    then
Delete
    fi
fi

本文出自 “木屋科技” 博客,请务必保留此出处http://starli.blog.51cto.com/8813574/1707393

mysql数据库innodb存储引擎备份脚本

标签:数据库备份   mysql   

原文地址:http://starli.blog.51cto.com/8813574/1707393

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!