数据库备份基础版,支持单个数据库备份以及一键定时执行多个数据库

数据库操作以及备份基础版

工具:Centos7(expect需要自己下载)

linux中操作数据库,退出mysql使用exit

在这里插入图片描述在这里插入图片描述

mysql备份脚本编写

在这里插入图片描述
具体代码

#!/bin/bash

#获取当前时间
time=$(date +%Y%m%d)
#使用awk命令,分别获取到账号,密码,数据库以及数据库下的表
# 账号(i)
for i  in  `awk  '{print $1}'  mysql-config.txt`
do
# 密码(j)
    j=`awk -v h="$i" '{ if(h==$1) print $2 }' mysql-config.txt`
# 数据库(k)
    k=`awk -v h="$i" '{ if(h==$1) print $3 }' mysql-config.txt`
# 表(t)
        for t in  `awk  '{print $1}'  tables.txt`
         do
                # 使用mysqldump命令进行数据库的表备份
                mysqldump -u$i -p$j $k $t > /home/$t-$time.sql
         done
done
# echo命令进行输出,等同于print
echo "===数据库备份完成啦==="

在这里插入图片描述![在这里插入图片描述](https://img-blog.csdnimg.cn/194b3f29c4d14558a0c2164d45d13bf2.png

使用expect,对多台电脑进行数据库备份操作(前提是每台电脑都有数据库备份的脚本以及配置文件,且路径一致

![在这里插入图片描述](https://img-blog.csdnimg.cn/0367623f8c894d3aad47dc6723d66b81.png
mysql.sh代码

#! /bin/bash
# dir 脚本所在的目录
dir=$(cd $(dirname $0);pwd)
# 使用awk命令,分别获取到ip(i),账号(j),密码(k)
for i  in  `awk  '{print $1}'  hosts-config.txt`
do
     j=` awk -v h="$i" '{ if(h==$1) print $2 }' hosts-config.txt`
     k=` awk -v h="$i" '{ if(h==$1) print $3 }' hosts-config.txt`
         # 使用expect 一键执行所有的电脑上的数据库备份
     expect  $dir/mysql.exp   $i  $j  $k
done

mysql.exp代码

#!/usr/bin/expect -f

#设置参数
set    ip        [lindex   $argv 0 ]
set    user      [lindex   $argv 1 ]
set    passwd    [lindex   $argv 2 ]
#设置超时时间
set   timeout  10
spawn   ssh $user@$ip
expect {
 "(yes/no)"     { send  "yes\r"; exp_continue}
 "password:"  { send  "$passwd\r" }
}
expect  -re  "(.*)(]#|~>|~?#|\\\$)"
send "/root/mysql_bak.sh\r"
expect  -re  "(.*)(]#|~>|~?#|\\\$)"
send "exit\r"
expect   eof

一键执行,配上crontab命令可以实现定时执行数据库的备份

在这里插入图片描述

赞赏

如果这个有帮助到你并且你很想支持后续开发和维护,那么你可以扫描下方二维码随意打赏我,我将不胜感激
如果有需要接口自动化的框架,也可以直接加我微信: xl_love_grl

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值