Shell脚本使用汇总整理——mysql数据库5.7.8以后备份脚本

Shell脚本使用的基本知识点汇总详情见连接:

https://www.cnblogs.com/lsy-blogs/p/9223477.html

脚本分为三部分配置信息、脚本文件、定时任务;

1、配置信息:

  1. username=root
  2. password=123456
  3. backupsFileStr=/dataBack/mysql
  4. backupsFileDay=7
  5. threadCounts=6
  6. mysqldumpStr=/usr/local/mysql/bin/mysqlpump
  7. copydb=hebei,countryJgPrep

参数说明:

username:用户名
password:密码
backupsFileStr:保留备份数据文件绝对路径
backupsFileDay:保留备份数据文件天数
threadCounts:备份开启多少个线程,偶数个线程
mysqldumpStr:导出工具mysqlpump绝对路径,mysqlpump是mysql数据库5.7.8以后版本一种高效的导出方式
copydb:备份的数据库名称,多个数据库用逗号分隔

2、脚本文件:

  1. #!/bin/sh
  2. #db_backups_conf.txt文件路径
  3. db_backups_conf="/wocloud/shell/db_backups_conf.txt"
  4. #判断文件是否存在
  5. if [ -f "${db_backups_conf}" ];then
  6.  
  7. echo $(date +'%Y-%m-%d %H:%M:%S')" 数据库配置信息文件存在,开始进行数据备份"
  8. #获取等号前内容,作为map中的Key值
  9. dbArrOne=($(awk -F'[=]' '{print $1}' ${db_backups_conf} ))
  10.  
  11. #获取等号后内容,作为map中的value值
  12. dbArrTwo=($(awk -F'[=]' '{print $2}' ${db_backups_conf}))
  13. #创建一个空map
  14. declare -A map=()
  15.  
  16. #通过循环,将db_backups_conf配置文件中的信息存储在map中
  17. for((i=0;i<${#dbArrOne[@]};i++))
  18. do
  19. map[${dbArrOne[i]}]=${dbArrTwo[i]}
  20. done
  21. #获取备份数据库的字符串
  22. copyDb=${map["copydb"]}
  23.  
  24. #获取默认的字符串分隔符
  25. old_ifs="$IFS"
  26.  
  27. #设置字符串分隔符为逗号
  28. IFS=","
  29. #将备份数据库value值的字符串进行分隔,获取一个数组
  30. dbArr=($copyDb)
  31. #将字符串的分隔符重新设置为默认的分隔符
  32. IFS="$old_ifs"
  33. #获取当前年月日
  34. saveday=$(date +%Y%m%d)
  35. #获取超出备份天数的年月日
  36. delday=$(date -d ${map["backupsFileDay"]}' days ago' +%Y%m%d)
  37.  
  38. #遍历要备份的数据库,删除两天前备份的数据文件
  39. for delDb in ${dbArr[@]};
  40. do
  41. echo $(date +'%Y-%m-%d %H:%M:%S')" 删除文件:"${map["backupsFileStr"]}/${delDb}_database_${delday}.sql
  42. rm -f ${map["backupsFileStr"]}/${delDb}_database_${delday}.sql
  43. done
  44. #遍历要备份的数据库,备份数据文件
  45. for saveDb in ${dbArr[@]};
  46. do
  47. echo $(date +'%Y-%m-%d %H:%M:%S')" 备份数据库:"${saveDb}
  48. ${map["mysqldumpStr"]} -u${map["username"]} -p${map["password"]} --default-parallelism=${map["threadCounts"]} -B ${saveDb} > ${map["backupsFileStr"]}/${saveDb}_database_${saveday}.sql
  49. done
  50.  
  51. echo $(date +'%Y-%m-%d %H:%M:%S')" 数据备份完毕,脚本执行完毕"
  52. else
  53. echo "文件不存在"
  54. fi

注意:注意代码开头中读取配置文件的路径,这个位置可能不一样,需要进行适当修改。

3、定时任务:

Linux中的sh脚本定时任务,可以通过crontab进行管理,如果linux中没有安装crontab,需要进行安装:

安装命令:

  1. yum -y install vixie-cron
  2. yum -y install crontabs

服务管理

  1. service crond start //启动服务
  2. service crond stop //关闭服务
  3. service crond restart //重启服务
  4. service crond reload //重新载入配置
  5. service crond status //查看crontab服务状态

加入开机自启

  1. chkconfig crond on

(1)设定定时任务:

crontab -e 编写定时任务表达式

例如:

  1. 1 */3 * * * /wocloud/shell/fileBackupsScript.sh &>/wocloud/shell/fileBackupsLogs/fileBackupsEcho_`date +\%Y-\%m-\%d-\%H-\%M-\%S`.txt 2>&1

定时表达式+脚本绝对路径+脚本打印信息日志输出绝对路径(一定要有日志输出记录,方便以后进行查看)

(2)重新启动crond

service crond restart;

Shell脚本使用汇总整理——mysql数据库5.7.8以后备份脚本的更多相关文章

  1. Shell脚本使用汇总整理——mysql数据库5.7.8以前备份脚本

    Shell脚本使用汇总整理——mysql数据库5.7.8以前备份脚本 Shell脚本使用的基本知识点汇总详情见连接: https://www.cnblogs.com/lsy-blogs/p/92234 ...

  2. Shell脚本使用汇总整理——达梦数据库备份脚本

    Shell脚本使用汇总整理——达梦数据库备份脚本 Shell脚本使用的基本知识点汇总详情见连接: https://www.cnblogs.com/lsy-blogs/p/9223477.html 脚本 ...

  3. Shell脚本使用汇总整理

    Shell脚本使用汇总整理 一.Shell脚本常用的头部格式: 头部的作用就是告知linux此脚本的类型: 常用的头部格式如下:(/bin/bash,是bash的路径,如果不知道路径可以通过which ...

  4. Shell脚本使用汇总整理——文件夹及子文件备份脚本

    Shell脚本使用汇总整理——文件夹及子文件备份脚本 Shell脚本使用的基本知识点汇总详情见连接: https://www.cnblogs.com/lsy-blogs/p/9223477.html ...

  5. 配合crond服务实现自定义周期备份MySQL数据库(使用innobackupex进行备份)

    备份 新建一个脚本/root/backup.py,内容如下: #!/usr/bin/env python# -*- coding: utf-8 -*- ''' 脚本作者:昨夜星辰 脚本作用:配合cro ...

  6. 实现对MySQL数据库进行分库/分表备份(shell脚本)

    工作中,往往数据库备份是件非常重要的事情,毕竟数据就是金钱,就是生命!废话不多,下面介绍一下:如何实现对MySQL数据库进行分库备份(shell脚本) Mysq数据库dump备份/还原语法: mysq ...

  7. Navicat工具导出mySQL数据库某个视图结构的.sql脚本

    用Navicat工具怎么都导不出来mySQL数据库的某个视图.sql脚本,即使导出来也只是包含视图记录,不包含视图结构.经过一番研究,终于克服,操作如下: 1.在某个数据库中,新建备份,如下图 2.选 ...

  8. 收集整理mysql数据库设计规范与原则

    1. 数据库命名规范 采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成;命名简洁明确(长度不能超过30个字符);例如:user, stat, log, 也可以wifi ...

  9. mysql数据库binlog日志的异地备份

    MySQL数据库的二进制日志binlog记录了对数据库的全量DDL和DML操作,对数据库的point to point灾难恢复起着无法替代的关键作用.因此,基于此类考虑,需要对生产环境产生的binlo ...

随机推荐

  1. springBoot集成web service

    转载大神: https://blog.csdn.net/u011410529/article/details/68063541?winzoom=1 https://blog.csdn.net/nr00 ...

  2. new与malloc区别

    1.new分配内存时会按照数据类型计算需要分配内存的大小,malloc分配内存时是按照指定的大小分配的:2.new不仅分配一段内存,而且会调用构造函数,malloc不会调用构造函数:之前看到过一个题说 ...

  3. WPF自定义分页控件,样式自定义,简单易用

    WPF自定义分页控件 做了许久伸手党,终于有机会贡献一波,搜索一下WPF分页控件,还是多,但是不太通用,主要就是样式问题,这个WPF很好解决,还有一个就是分页控件嘛,只关心几个数字的变动就行了,把页码 ...

  4. 洛谷 P1281 书的复制

    书的复制 Code: #include <iostream> #include <cstdio> #include <cstring> using namespac ...

  5. Selenium常见元素定位方法和操作的学习介绍

    参考地址: https://www.cnblogs.com/eastmount/p/4810690.html 这篇文章主要Selenium+Python自动测试或爬虫中的常见定位方法.鼠标操作.键盘操 ...

  6. Ubuntu 14.04 安装caffe深度学习框架

    简介:如何在ubuntu 14.04 下安装caffe深度学习框架. 注:安装caffe时一定要保持网络状态好,不然会遇到很多麻烦.例如下载不了,各种报错. 一.安装依赖包 $ sudo apt-ge ...

  7. 常用工具使用(sublimeText)

    1.sublime Text  (插件的安装,删除,更新) 1.1 使用 ctrl+`快捷键(Esc下面的波浪线按钮) 或者 菜单项View > Show Console 来调出命令界面,下面代 ...

  8. 编程之美2015 资格赛 hihocoder 题目2: 回文字符序列

    思路:暴力搜,用BFS的方式,生成每一种可能,再对每一种可能进行判断是否回文,进行统计.严重超时!计算一个25个字符的,大概要20多秒! #include <iostream> #incl ...

  9. netcat 详解

    简介 netcat 是一款调试 TCP/UDP 网络连接的利器,常被称作网络调试的瑞士军刀,可见其功能强大. netcat 在 Linux, Windows 等各大操作系统上都有对应等发行版,以下以 ...

  10. 【BZOJ1059】[ZJOI2007] 矩阵游戏(匈牙利算法)

    点此看题面 大致题意: 有一个\(N*N\)的\(01\)矩阵,可以任意交换若干行和若干列,问是否有方案使得左上角到右下角的连线上全是\(1\). 题意转换 首先,让我们来对题意进行一波转化. 如果我 ...