加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

编写一个 mysql 的备份脚本

发布时间:2023-08-19 14:56:11 所属栏目:MySql教程 来源:
导读:下文内容主要给大家带来记录mysql 备份脚本,这里所讲到的知识,与书籍略有不同,都是亿速云专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。

mysql备份脚本,记
下文内容主要给大家带来记录mysql 备份脚本,这里所讲到的知识,与书籍略有不同,都是亿速云专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。
 
mysql备份脚本,记录一下:
 
全备:
 
#!/bin/sh
 
set -x                                                            
 
USER=root
 
PASSWORD=123456
 
time=`date +"%y-%m-%d-%H-%M"`  
 
date >> /data/mysqlbackup/logs/$time'_allbackup.log'
 
 
 
#1 begin Full Backups
 
echo "begin backup--------------------------------" >> /data/mysqlbackup/logs/$time'_allbackup.log'
 
   /usr/bin/innobackupex --defaults-file=/etc/my.cnf  --user=$USER --password=$PASSWORD --use-memory=2GB  --parallel=4  --no-timestamp /data/mysqlbackup/full-$time 2>>/data/mysqlbackup/logs/$time'_allbackup.log'
 
cp /etc/my.cnf /data/mysqlbackup/full-$time/my.cnf.bk
 
echo "end backup----------------------------------" >> /data/mysqlbackup/logs/$time'_allbackup.log'
 
#2 begin compress
 
echo "Begin compress------------------------------" >> /data/mysqlbackup/logs/$time'_allbackup.log'
 
    archivename=full-$time
 
echo "The archive time is  $time" >> /data/mysqlbackup/logs/$time'_allbackup.log'
 
    tarname=$archivename.tar.gz
 
echo "The tar name is $tarname" >> /data/mysqlbackup/logs/$time'_allbackup.log'
 
cd /data/mysqlbackup
 
/bin/tar -zcvf ./$tarname ./$archivename >> /data/mysqlbackup/logs/$time'_allbackup.log' 2>&1
 
rm -rf /data/mysqlbackup/full/xtrabackup_checkpoints
 
cp /data/mysqlbackup/full-$time/xtrabackup_checkpoints /data/mysqlbackup/full/xtrabackup_checkpoints记录mysql 备份脚本
 
#3 Delete Document
 
file=/data/mysqlbackup/$tarname
 
if [[ -e $file ]]
 
    then
 
        echo "The $tarname file exists.begin to perform delete action"   >> /data/mysqlbackup/logs/$time'_allbackup.log'
 
        /bin/rm -rf /data/mysqlbackup/$archivename
 
    else
 
        echo "The file is not exists." >> /data/mysqlbackup/logs/$time'_allbackup.log'
 
    fi
 
date >> /data/mysqlbackup/logs/$time'_allbackup.log'
 
find /data/mysqlbackup/*tar.gz -ctime +1|xargs -I '{}'  mv  {}  /data/ftp
 
cd /data/ftp
 
function logftp (){
 
ftp -v -n xxx.xxx.xxx.xxx << EOF
 
user username password
 
binary
 
hash
 
cd ftp_mysql
 
prompt
 
put /data/mysqlbackup/*tar.gz
 
ls -la
 
bye
 
EOF
 
}
 
logftp >>/data/mysqlbackup/logs/to_ftp.log
 
cd /data/ftp
 
find /data/ftp/*tar.gz |xargs rm -rf
 
增量备份:
 
#!/bin/sh
 
set -x
 
USER=root
 
PASSWORD=123456
 
time=`date +"%y-%m-%d-%H-%M"`
 
date >>/data/mysqlbackup/logs/$time'_incre.log'
 
#1 begin Incre Backups
 
echo "begin backup--------------------------------" >> /data/mysqlbackup/logs/$time'_incre.log'
 
   /usr/bin/innobackupex --defaults-file=/etc/my.cnf  --user=$USER --password=$PASSWORD  --incremental --incremental-basedir=/data/mysqlbackup/full --use-memory=2GB --safe-slave-backup --parallel=4 --slave-info   --no-timestamp /data/mysqlbackup/incre-$time  2>>/data/mysqlbackup/logs/$time'_incre.log'
 
cp /etc/my.cnf /data/mysqlbackup/incre-$time/my.cnf.bk
 
echo "end backup----------------------------------" >> /data/mysqlbackup/logs/$time'_incre.log'
 
#2 begin compress
 
echo "Begin compress------------------------------" >> /data/mysqlbackup/logs/$time'_incre.log'
 
    archivename=incre-$time
 
echo "The archive time is  $time" >> /data/mysqlbackup/logs/$time'_incre.log'
 
    tarname=$archivename.tar.gz
 
echo "The tar name is $tarname" >> /data/mysqlbackup/logs/$time'_incre.log'
 
cd /data/mysqlbackup/
 
/bin/tar -zcvf ./$tarname ./$archivename >> /data/mysqlbackup/logs/$time'_incre.log' 2>&1
 
#3 Delete Document
 
file=/data/mysqlbackup/$tarname
 
if [[ -e $file ]]
 
    then
 
        echo "The $tarname file exists.begin to perform delete action"   >> /data/mysqlbackup/logs/$time'_incre.log'
 
        /bin/rm -rf /data/mysqlbackup/$archivename
 
    else
 
        echo "The file is not exists." >> /data/mysqlbackup/logs/$time'_incre.log'
 
    fi
 
date >> /data/mysqlbackup/logs/$time'_incre.log'
 
find /data/mysqlbackup/*tar.gz -ctime +1|xargs -I '{}'  mv  {}  /data/ftp
 
cd /data/ftp
 
function logftp (){
 
ftp -v -n xxx.xxx.xxx.xxx << EOF
 
user username password
 
binary
 
hash
 
cd ftp_mysql
 
prompt
 
put /data/mysqlbackup/*tar.gz
 
ls -la
 
bye
 
EOF
 
}
 
logftp >>/data/mysqlbackup/logs/to_ftp.log
 
cd /data/ftp
 
find /data/ftp/*tar.gz |xargs rm -rf
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章