美文网首页
MySQL备份脚本及异地备份

MySQL备份脚本及异地备份

作者: Anson前行 | 来源:发表于2018-01-22 11:59 被阅读611次

1.异地备份的话,需要做ssh免密登录

在MySQL服务器上操作

ssh-keygen  

ssh-copy-id root@192.168.1.4

2. MySQL全备脚本,可以备份多个数据库,单独文件夹,删除十天前的备份,拷贝到其他服务器(scp增量,不会覆盖掉原先文件)

#!/bin/bash

#Mysql dabase information

#主机

find /aebiz/soft/databackup/* -type f -mtime +10  -name "*.gz" -exec rm {} \;

db_host="localhost"

#数据库帐号

db_user="root"

#数据库密码

db_passwd="123456"

#mysql安装目录

MYSQL="/aebiz/soft/mysql"

#mysql命令目录

MYSQLDUMP="/aebiz/soft/mysql/bin/mysqldump"

#Path information

#存放备份文件的路径

BACKUP_DB="/aebiz/soft/databackup"

LogFile=$BACKUP_DB"/bak.log"

#Time information

#时间

time=`date +"%Y-%m-%d-%H-%M-%S"`

day=`date +"%d"`

month=`date +"%Y-%m"`

weekday=`date +"%u"`

#Path enable write

if [ ! -w "$BACKUP_DB" ]; then

chmod -R 700 $BACKUP_DB

fi

#echo "**********************************host info****************************************"

#echo "db_host:"$db_host

#echo "db_user:"$db_user

#echo "db_passwd:"$db_passwd

#echo "MYSQL:"$MYSQL

#echo "MYSQLDUMP:"$MYSQLDUMP

#echo "databaseName:"$databaseName

#echo "BACKUP_DB:"$BACKUP_DB

#echo "**********************************************************************************"

#Mysql Backup

Date=`date +%Y%m%d`

Begin=`date +"%Y-%m-%d %H:%M:%S"`

#echo "start backup database:"$databaseName"  "$Begin

#databases

#需要备份的数据库,如果有多个数据库,请用,分隔

databaseList="ceshishop,ceshiydys,testshop0711,testydys0711"

for databaseName in `echo "$databaseList" | sed 's/,/\n/g'`

do 

    echo $databaseName

#fileName

#生成备份文件名

fileName=$databaseName"-"$time".sql"

#生成备份文件完整路径

BACKUP_DBPATH=$BACKUP_DB"/"$databaseName

#echo "***********************************database Info***********************************************"

#echo "BACKUP_DBPATH:"$BACKUP_DBPATH

#echo "fileName:"$fileName

#echo "**********************************************************************************"

if [ ! -d "$BACKUP_DBPATH" ]; then

mkdir "$BACKUP_DBPATH"

fi

#备份mysql

$MYSQLDUMP -u $db_user -p$db_passwd -h $db_host $databaseName > $BACKUP_DBPATH/$fileName

#打包.sql文件

cd $BACKUP_DBPATH && tar -czf $fileName.tar.gz $fileName && rm -rf $fileName && chmod go-rwx $fileName.tar.gz

Last=`date +"%Y-%m-%d %H:%M:%S"`

#echo "end backup database:"$databaseName"  "$Last

#输出日志

echo start:$Begin end:$Last $fileName succ >> $LogFile

done

scp -r  /aebiz/soft/databackup root@192.168.1.4:/aebiz/soft

3.Mysql服务器设置crontab定时任务

每隔三天的凌晨三点,执行备份

0 3 */3 * * sh /aebiz/soft/databasebak.sh

4.备份服务器设置crontab定时任务

备份服务器的可以设置保留时间长一些,删除30天前的备份

每隔三天查找备份目录下超过三十天的文件并删除.

0 3 */3 * *  find /aebiz/soft/databackup/* -type f -mtime +30 -name "*.gz" -exec rm {} \;

相关文章

  • MySQL备份脚本及异地备份

    1.异地备份的话,需要做ssh免密登录 在MySQL服务器上操作 ssh-keygenssh-copy-id ro...

  • mysql binlog日志备份脚本

    mysql binlog日志备份脚本mysql binlog日志备份脚本 备份到备份服务器 1) 确定binlog...

  • 【MySQL】xtrabackup实战版

    备份脚本 全量备份脚本 增量备份脚本 全量恢复 增量恢复 全量备份脚本 增量备份脚本 目录结构 其中mysql_d...

  • 常用脚本

    一、mysql备份 备份shell脚本 数据库连接配置文件 把备份脚本放到 /etc/cron.daily 下,就...

  • ubuntu下nbu备份mysql

    备份 该系统下使用nbu备份mysql需要使用meb软件来作为备份脚本去完成备份; 1、首先在mysql的服务器端...

  • 简述mysql常用备份方式及备份工具并举例

    一、Mysql常用备份方式 Mysql的备份方法可以根据备份手段、备份的数据范围及备份时数据服务是否在线等来划分,...

  • CentOS下备份MYSQL数据库

    一、编写备份脚本 二、更改备份脚本权限chmod u+x /usr/local/tools/mysql_dy_ba...

  • shell 定期备份mysql

    mysql数据库需要每天定时备份,于是写了个脚本,加到crontab里面,每天定时备份,直接上脚本

  • mysql备份、复制、MHA配置

    1、简述mysql常用备份方式及备份工具并举例 备份类型:备份的数据的集范围完全备份和部分备份完全备份: 整个数据...

  • shell案例系列2-MySQL相关的shell案例

    一. mysql安装 这是一个大佬发的自动安装mysql8的脚本,收藏下 二. MySQL 备份 2.1 逻辑备份...

网友评论

      本文标题:MySQL备份脚本及异地备份

      本文链接:https://www.haomeiwen.com/subject/iqrlaxtx.html