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=/wocloud/db/backups
- backupsFileDay=3
- mysqldumpStr=/usr/bin/mysqldump
- copydb=hebei,reportSystem
参数说明:
username:用户名
password:密码
backupsFileStr:保留备份数据文件绝路路径
backupsFileDay:备份数据文件保留天数
mysqldumpStr:导出工具mysqldump绝对路径
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"]} ${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 ...
随机推荐
- Scala_Load csv data to hive via spark2.1_via pass parameters_HiveAllType
prepare CSV data NT,col_SMALLINT,col_BIGINT,col_INT,col_FLOAT,col_DOUBLE,col_DECIMAL,col_TIMESTAMP,c ...
- mybatis深入理解(一)之 # 与 $ 区别以及 sql 预编译
mybatis 中使用 sqlMap 进行 sql 查询时,经常需要动态传递参数,例如我们需要根据用户的姓名来筛选用户时,sql 如下: select * from user where name = ...
- maven 引入本地项目jar报红线错误解决方法
问题:本地创建了2个项目,A和B,A引入B,A的pom如下: <dependency> <groupId>com.ebc</groupId> <artifac ...
- ElasticSearch入门-增删改查(java api)
1.增加Index PutMappingRequest mapping = Requests.putMappingRequest(indices).type(mappingType).source(g ...
- maven validator数据校验
1.maven文件中添加依赖包 <!-- validator校验--> <dependency> <groupId>org.hibernate</groupI ...
- 修改Oracle环境变量$PATH
此次在创建公司的Oracle 标准化应用时,提到了添加$PATH,但没有发现对我很符合我的现况的方法,现记录下此次添加$PATH的方法: 首先查看$PATH中是否已存在我们需要的路径: 执行指令ech ...
- web安全防御之RASP技术
作者: 我是小三 博客: http://www.cnblogs.com/2014asm/ 由于时间和水平有限,本文会存在诸多不足,希望得到您的及时反馈与指正,多谢! 0x00:we ...
- Eucalyptus学习汇总
Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems (Eucalyptus) 是一种开 ...
- Java static修饰符小记
首先我们明确一点:java是一个纯面向对象的编程语言,它的每一个文件都视为一个类,当我们创建一个对象的时候,就是在调用一个文件,那么这个时候,这个文件(类)里的一些东西,它是需要通过对象来使用或访问, ...
- 一个普通 iOS 码农的几个小项目相关知识点总结
题记:在开发的路途上,有的人走的很深很远,而对于停留在初级阶段的我来说,还要学的.经历的还有很多... list sqlite 数据库中,当把表里的数据都清空时,下次插入的数据的 id 主键不会从 0 ...