shell脚本--数据库备份

数据库备份

需求:(此为一个题目)
1.执行db_dump.sh westos(数据库密码)
2.脚本执行后会备份数据库中的所有库到/mnt/mysqldump目录中
3.备份文件名称为 “库名称.sql”
4.当此文件存在时报错 并 询问动作
(1)输入“S”跳过备份
(2)当输入“B"时备份“库名称.sql”文件为“库名称_backup.sql”,再重新备份。
(3)当输入“O”时,覆盖源文件

tips:
(一)安装软件
(1)查看yum仓库是否Ok
(2)安装两个软件
(3)开启enable
(4)设置密码(root–westos!!)
(5)有密码登陆

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(二)新建数据库和表,并添加数据;
1.show databases;展示数据库
2.创建数据库并设置格式;utf8 写了中文也不会乱码。
3.创建表
(1)use westos #使用westos库
(2)创建表
(3)添加数据
在这里插入图片描述
在这里插入图片描述
注意:
(1)ctrl+c 退出数据库
(2)mysql语言以“;”分号结尾

(三)开始写脚本啦~
1.判断/mnt/mysqldump目录是否存在,并且是否为目录,不满足进行创建。
(1)经常写的东西,可以抽象为一个变量
(2)判断是不是存在
判断思路:
需求:脚本执行后会备份数据库中的所有库到/mnt/mysqldump目录中。因此要先确保目录存在。
√如果存在
√如果不是目录,删除原有的,创建新的目录;
√如果是目录什么都不做(也就是没有else)
√如果不存在,直接创建目录;
补充知识:

if [ -e /mnt/mysqldump ];then
        echo exit
else
        echo not exit
fi

结果:

[root@DNS_Client 01_code]# sh test.sh 
exit

含义: 如果if后面的判断满足条件(满足条件,执行结果为0),输出then的执行结果。如果不满足,输出else结果。

2.获取数据库中所有的数据库名称并通过for循环进行批量备份;
(1)一般情况下,以-schema 结尾的数据库不备份;
(2)-v 表示取反,本示例获取westos和mysql数据库
(3)通过命令的方式分别备份每个数据库
(4)备份命令:
mysqldump -uroot -pwestos $db > /mnt/mysqldump/ $db.sql

3.备份已经存在,该如何处理呢?()写一个函数)
(1)$1 传进来的第一个参数
(2)两种方式。case或者if语句均可。
(2)case每一种情况都要加;;
所有的情况 *)
esac 结束勿忘记写!
(3)传参数的时候,不确定的时候可以先不传参,需要的时候再传参数,需要几个传几个,在函数中使用 $1 $2 进行表示。(简单易理解的方式)
(4)mv 重命名

扩展:
(1)不采用交互式方式,查看数据库信息
mysql -uroot -pwestos -e “show databases;”
(2)除了XXXX之外的,-v 然后-E

捋清思路:
1.

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值