自动实现备份整个数据库

  • 实现一个库备份一个文件
  • 实现排除不需要备份的库
  • 实现备份成压缩文件
  • 实现定义保留多少天的备份文件

核心代码

 #!/bin/bash
#set -x
#########################
# 功能:自动备份整个mysql数据库
# 作者:时光博客
# 发布时间://
# 最后修改时间:
# 版本:v1.
########################
############################参数定义########################
#用户名
user="root"
#密码
pass="root"
# 设置备份目录,必须以/结尾
back_dir=/data/backup/
#设置保存多少天
day=
#定义文件名
file_name=`date +%Y%m%d%H%M`
#定义排除的数据库名称
exclude=("Database" "performance_schema" "information_schema" "mysql")
#############################代码逻辑########################
#定义命令
MYSQL=`which mysql`
MYSQLDUMP=`which mysqldump`
#创建一个临时文件,装载数据库
tmp_file=/tmp/databases_$RANDOM
touch $tmp_file
#登陆mysql,获取所有的数据库名称
$MYSQL -u$user -p$pass <<EOF >$tmp_file
show databases;
EOF
#定义数据库名称数组
database_list=()
#定义自增变量
len=
#获取真实有用的数据库名称
while read line
do
if [[ "${exclude[@]}" != *$line* ]]
then
let "len++"
database_list[$len]=$line
fi
done < $tmp_file
#输出结果,导出数据库
echo "数据库总共:${#database_list[*]}"
#开始备份
echo "开始备份..."
rd=$RANDOM
for name in ${database_list[@]}
do
file_path="${back_dir}`date +%Y%m%d`"/
if [ ! -e $file_path ]
then
mkdir -p $file_path
fi
file="${file_path}${name}-$file_name-$rd.gz"
$MYSQLDUMP --opt $name -u $user -p${pass} | gzip > $file
done
#保留多少天的数据
find $basedir -mtime +$day -name "*.gz" -exec rm -rf {} \;
#删除临时文件
if [ -e $tmp_file ]
then
rm -rf $tmp_file
fi
echo "备份结束."

转自 时光博客

shell实现自动备份整个数据库,一个库备份一个文件的更多相关文章

  1. shell编程系列25--shell操作数据库实战之备份MySQL数据,并通过FTP将其传输到远端主机

    shell编程系列25--shell操作数据库实战之备份MySQL数据,并通过FTP将其传输到远端主机 备份mysql中的库或者表 mysqldump 常用参数详解: -u 用户名 -p 密码 -h ...

  2. SQLSERVER 数据库备份脚本-支持多库备份

    原文:SQLSERVER 数据库备份脚本-支持多库备份 <pre name="code" class="sql">--变量定义 DECLARE @b ...

  3. 学会4种备份MySQL数据库(基本备份方面没问题了)

    前言 我们试着想一想, 在生产环境中什么最重要?如果我们服务器的硬件坏了可以维修或者换新, 软件问题可以修复或重新安装, 但是如果数据没了呢?这可能是最恐怖的事情了吧, 我感觉在生产环境中应该没有什么 ...

  4. 实现定时备份mysql数据库并把备份数据库邮件发送

    一.先来看备份mysql数据库的命令 1 mysqldump -u root --password=root --database abcDataBase > c:/abc_backup.sql ...

  5. linux下实现shell脚本自动连接mongodb数据库并创建索引

    在linux下创建shell脚本

  6. shell实现自动部署两台tomcat项目+备份

    就做个记录吧, 其实也没啥好说的. 主机 #!/bin/bash TODAY=$(date -d 'today' +%Y-%m-%d-%S) MIP="192.168.180.24" ...

  7. Linux 网站文件和数据库全量备份 一键脚本(支持FTP,Google Drive)

    原文连接: https://teddysun.com/469.html 此文为转载,建议查看秋水大神的原文,排版更容易查看,另外,建议查看脚本源码,方便了解脚本运行过程, 脚本已测试,大神的脚本一如既 ...

  8. mysql备份恢复数据库据/表

    备份单个数据库,只备份表,如要恢复,必须先创建一个数据库[root@s]# mysqldump -u root -p dbname1 > dbname1.sql[root@s]# mysql - ...

  9. sql2005-数据库备份方案 (转载)

    sql2005数据库备份一般情况分为二种:一是手工备份.二是自动备份.以下是二种方法的步骤: 一.手工备份 打开数据库,选择要备份数据库,右键选择[任务]->[备份],打开备份数据库页面,在[源 ...

随机推荐

  1. 分布式存储系统可靠性系列五:副本放置算法 & CopySet Replication

    本文来自网易云社区 作者:孙建良 在分布式存储系统 中说明了,在一定情况下,copyset的数量不是越多越好,在恢复时间确定的情况下,找到合适的copyset的数量可以降低数据丢失的概率. 在分布式存 ...

  2. Windows网络编程笔记1

    第一部分 传统网络API 传统的网络接口NetBIOS.重定向器.邮槽.命名管道等.第一,NetBIOS(Network Basic Input/Output System, NetBIOS)“网络基 ...

  3. 嵌入式之download

    ISP ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码, 而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程.IS ...

  4. python学习_运算

    1.数据类型 1.1数字 整型int,如2 浮点型float,如3.14和314E-2 复数complex,如(-5+4) 1.2布尔值 真或假 1或0 1.3字符串 'hello world' 2. ...

  5. 菜鸟之路——机器学习之HierarchicalClustering层次分析及个人理解

    这个算法.我个人感觉有点鸡肋.最终的表达也不是特别清楚. 原理很简单,从所有的样本中选取Euclidean distance最近的两个样本,归为一类,取其平均值组成一个新样本,总样本数少1:不断的重复 ...

  6. HDU 4178 模拟

    Roll-call in Woop Woop High Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (J ...

  7. iOS xmpp Openfire+spark环境搭建

    配置这个遇到太多问题了,写下来分享 首先到官网下载openfire+spark 下载地址:http://www.igniterealtime.org/downloads/index.jsp

  8. js 判断对象类型

    在企业级的开发中,我们常用 typeof 来判断企业 对象类型:但是 typeof 不能判断 Array 和 null 这里我们使用一个 原型上的 toString方法:请看一下代码: <scr ...

  9. table单元格内容过多换行显示

    <table class="am-table am-table-striped am-table-hover table-main am-table-compact " st ...

  10. 上传图片获取base64位编码

    function loadImg(){ //获取文件 ].files[]; //创建读取文件的对象 var reader = new FileReader(); //创建文件读取相关的变量 var i ...