mysql触发器输出提示信息_Linux中Mysql数据库备份shell脚本编写实例

学了段时间的Linux,也学习了shell脚本编写的基本命令与语法,现做一个综合案例来详细讲解。

要求:1)、每天凌晨备份数据库shaoxiao到/data/backup/db中

            2)、备份开始和备份结束有提示信息

            3)、备份的文件要求以备份的时间为文件名,并且打包成.tar.gz的格式.例如:2020-09-20_230201.tar.gz

            4)、备份的同时,检查是否有10天前的备份数据,有就删除。

分析:第一步很简单,用crontab任务调度指令即可。

          第二步也很简单,在shell脚本里面echo相应的提示符就行

          第三步生成的文件名以日期命名,因此要设置变量

        第四步有个固定格式,先找到,再删除:find /usr/loca/backup/ -mtime +10 -name "*.tar.gz" -exec rm -rf {} \;

直接上代码:

54dbbca41b788ab3a3e107dab5a8b19a.png

e3489c77eac70799e75e43510cec6486.png

详细解析:

第2行是指定保存路径的变量

第4行是获取当前时间的变量,注意(date指令的用法)

第5、6、7行是输出提示信息,第5行可不用。注意:编写shell脚本时,可以先执行看一看能正常运行,一步一步的来

第9、10、11行是定义数据库mysql的,登录用户名和密码,主动地址,这里用本机localhost

第13行是创建生成备份的路径,用 if [ ] 来判断。[ ! -d $ ]表示如果没有这个地址,就创建。!取反的意思。

第17行是定义要备份的数据库的名称变量

第18行是数据库mysql的指令,mysqldump  是备份,后面的参数是 -u登录名称 -p登录密码 --host登录主机。登录之后,压缩这个数据库,生成一个临时的压缩文件.sql.gz

第19行是切换到保存数据库的目录

第20行是压缩保存有数据库备份文件的目录,整个目录全部压缩,并且文件名是以日期命名的。DATETIME变量的名字。

第21行是删除生成的那个目录,因为已经备份压缩了,之前生成的目录可以删除了

第23行是每次执行完备份后查找一下有没有10天前备份的文件,删除,保证文件的大小,不然会一直生成。

最后执行第一步,设置进程调度任务即可。

注意:细节:mysql命令(18行)后面跟密码的-p后不要空格,否则每次要求你输入密码。23行固定格式后面-exec rm -rf {} \;  {}后面空格,\后面必须要分号;,否则提示错误,这个固定格式。

下面是运行效果截图

4c847a8afa2de502610c902e27d8c88e.png

上图是这是数据库内容,里面有个shaoxiao的数据库名。

34b2728d43fbb8aa1b3aed761387d21c.png

上图是运行后自动生成的文件,以时间格式命名的

722238dce0fa64b5c7700d6505546646.png

这是shell脚本运行的效果,从“开始备份”起

58e4e4c2208c7f5aa9bbc18cb531e445.png

这个是进入解压后进入备份的文件查看,发现备份了数据库shaoxiao,并且里面有表a1。说明备份成功。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值