Shell脚本使用汇总整理——mysql数据库5.7.8以后备份脚本
Shell脚本使用汇总整理——mysql数据库5.7.8以后备份脚本
Shell脚本使用的基本知识点汇总详情见连接:
https://www.cnblogs.com/lsy-blogs/p/9223477.html
脚本分为三部分配置信息、脚本文件、定时任务;
1、配置信息:
username=root
password=123456
backupsFileStr=/dataBack/mysql
backupsFileDay=7
threadCounts=6
mysqldumpStr=/usr/local/mysql/bin/mysqlpump
copydb=hebei,countryJgPrep
参数说明:
username:用户名
password:密码
backupsFileStr:保留备份数据文件绝对路径
backupsFileDay:保留备份数据文件天数
threadCounts:备份开启多少个线程,偶数个线程
mysqldumpStr:导出工具mysqlpump绝对路径,mysqlpump是mysql数据库5.7.8以后版本一种高效的导出方式
copydb:备份的数据库名称,多个数据库用逗号分隔
2、脚本文件:
#!/bin/sh
#db_backups_conf.txt文件路径
db_backups_conf="/wocloud/shell/db_backups_conf.txt"
#判断文件是否存在
if [ -f "${db_backups_conf}" ];then echo $(date +'%Y-%m-%d %H:%M:%S')" 数据库配置信息文件存在,开始进行数据备份"
#获取等号前内容,作为map中的Key值
dbArrOne=($(awk -F'[=]' '{print $1}' ${db_backups_conf} )) #获取等号后内容,作为map中的value值
dbArrTwo=($(awk -F'[=]' '{print $2}' ${db_backups_conf}))
#创建一个空map
declare -A map=() #通过循环,将db_backups_conf配置文件中的信息存储在map中
for((i=0;i<${#dbArrOne[@]};i++))
do
map[${dbArrOne[i]}]=${dbArrTwo[i]}
done
#获取备份数据库的字符串
copyDb=${map["copydb"]} #获取默认的字符串分隔符
old_ifs="$IFS" #设置字符串分隔符为逗号
IFS=","
#将备份数据库value值的字符串进行分隔,获取一个数组
dbArr=($copyDb)
#将字符串的分隔符重新设置为默认的分隔符
IFS="$old_ifs"
#获取当前年月日
saveday=$(date +%Y%m%d)
#获取超出备份天数的年月日
delday=$(date -d ${map["backupsFileDay"]}' days ago' +%Y%m%d) #遍历要备份的数据库,删除两天前备份的数据文件
for delDb in ${dbArr[@]};
do
echo $(date +'%Y-%m-%d %H:%M:%S')" 删除文件:"${map["backupsFileStr"]}/${delDb}_database_${delday}.sql
rm -f ${map["backupsFileStr"]}/${delDb}_database_${delday}.sql
done
#遍历要备份的数据库,备份数据文件
for saveDb in ${dbArr[@]};
do
echo $(date +'%Y-%m-%d %H:%M:%S')" 备份数据库:"${saveDb}
${map["mysqldumpStr"]} -u${map["username"]} -p${map["password"]} --default-parallelism=${map["threadCounts"]} -B ${saveDb} > ${map["backupsFileStr"]}/${saveDb}_database_${saveday}.sql
done echo $(date +'%Y-%m-%d %H:%M:%S')" 数据备份完毕,脚本执行完毕"
else
echo "文件不存在"
fi
注意:注意代码开头中读取配置文件的路径,这个位置可能不一样,需要进行适当修改。
3、定时任务:
Linux中的sh脚本定时任务,可以通过crontab进行管理,如果linux中没有安装crontab,需要进行安装:
安装命令:
yum -y install vixie-cron
yum -y install crontabs
服务管理
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
service crond status //查看crontab服务状态
加入开机自启
chkconfig crond on
(1)设定定时任务:
crontab -e 编写定时任务表达式
例如:
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以后备份脚本的更多相关文章
- Shell脚本使用汇总整理——mysql数据库5.7.8以前备份脚本
Shell脚本使用汇总整理——mysql数据库5.7.8以前备份脚本 Shell脚本使用的基本知识点汇总详情见连接: https://www.cnblogs.com/lsy-blogs/p/92234 ...
- Shell脚本使用汇总整理——达梦数据库备份脚本
Shell脚本使用汇总整理——达梦数据库备份脚本 Shell脚本使用的基本知识点汇总详情见连接: https://www.cnblogs.com/lsy-blogs/p/9223477.html 脚本 ...
- Shell脚本使用汇总整理
Shell脚本使用汇总整理 一.Shell脚本常用的头部格式: 头部的作用就是告知linux此脚本的类型: 常用的头部格式如下:(/bin/bash,是bash的路径,如果不知道路径可以通过which ...
- Shell脚本使用汇总整理——文件夹及子文件备份脚本
Shell脚本使用汇总整理——文件夹及子文件备份脚本 Shell脚本使用的基本知识点汇总详情见连接: https://www.cnblogs.com/lsy-blogs/p/9223477.html ...
- 配合crond服务实现自定义周期备份MySQL数据库(使用innobackupex进行备份)
备份 新建一个脚本/root/backup.py,内容如下: #!/usr/bin/env python# -*- coding: utf-8 -*- ''' 脚本作者:昨夜星辰 脚本作用:配合cro ...
- 实现对MySQL数据库进行分库/分表备份(shell脚本)
工作中,往往数据库备份是件非常重要的事情,毕竟数据就是金钱,就是生命!废话不多,下面介绍一下:如何实现对MySQL数据库进行分库备份(shell脚本) Mysq数据库dump备份/还原语法: mysq ...
- Navicat工具导出mySQL数据库某个视图结构的.sql脚本
用Navicat工具怎么都导不出来mySQL数据库的某个视图.sql脚本,即使导出来也只是包含视图记录,不包含视图结构.经过一番研究,终于克服,操作如下: 1.在某个数据库中,新建备份,如下图 2.选 ...
- 收集整理mysql数据库设计规范与原则
1. 数据库命名规范 采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成;命名简洁明确(长度不能超过30个字符);例如:user, stat, log, 也可以wifi ...
- mysql数据库binlog日志的异地备份
MySQL数据库的二进制日志binlog记录了对数据库的全量DDL和DML操作,对数据库的point to point灾难恢复起着无法替代的关键作用.因此,基于此类考虑,需要对生产环境产生的binlo ...
随机推荐
- JD孔_20160920
1. 2. 3.
- VS文档自动生成
VS2008文档自动生成 (发现,Sandcastle主要是用于C#项目.里面的注释都是XML格式的.不太适合VC的.最终还是得用Doxygen) 一.Sandcastle简介: Sandcastle ...
- Java面向对象_对象内存分析—值传递和引用传递
对象内存分析,我一直学的比较模糊,今天抽空整理一下,希望能理清. 先说一下,内存分析从何而来,这对于我们这些刚接触java的人来说都比较模糊,就从new关键字说起吧. new关键字表示创建一个对象或者 ...
- Maven的学习资料收集--(二)安装m2eclipse插件
在Eclipse中可以安装Maven插件,可以更方便的使用: 官网地址:http://www.eclipse.org/m2e/ 可以在线安装或者离线下载,之前在线安装总是失败,可能是网速的原因,找到了 ...
- elasticsearch.yml基本配置说明
一.基本配置 elasticsearch的config文件夹里面有两个配置文 件:elasticsearch.yml和logging.yml,第一个是es的基本配置文件,第二个是日志配置文件,es也是 ...
- redhat配置dns服务器bind
配置Oracle11g的RAC需要使用DNS服务器来解析SCAN IP,本文就是以此为例介绍bind服务器的使用.首先科普一下bind服务器,属于企业级产品了,还是开源的: Bind是Berkeley ...
- 【软件使用心得】Quartus和ISE调用Synplify进行综合的问题
分别尝试采用Quartus和ISE调用第三方综合软件Synplify进行综合. [软件版本] Quartus II 13.0 (SP).ISE 14.4 .Synplify 201303. [问题描述 ...
- cms-详细页面-1
cms-详细信息页面设计思路:点击主页面然后查询详细信信,把查询出来的数据放大modelandvie里面,然后返回前台,然后在跳转页面取出来显示:代码:mapper: <?xml version ...
- hadoop2.4 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
在Ubuntu上安装完hadoop2.4以后,使用以下命令: hadoop fs -ls // :: WARN util.NativeCodeLoader: Unable to load native ...
- IIS7.5配置自动添加www 及 限制通过IP访问web
IIS7.5配置自动添加www 方法 新建一个站点2(主机名为不带www的站点),将其重定向至带www的URL即可. 注意以下几点 站点2不可与站点1的路径一致,否则会导致站点1也会添加同样的重定向, ...