文档章节

linux上进行指定数据库的指定表备份和清空脚本

yeqiang2015
 yeqiang2015
发布于 2018/01/15 15:03
字数 659
阅读 167
收藏 0


#mysql账号
echo $1
#mysql密码
echo $2

#主机IP
MHOST="localhost"
#数据库名
MDB="audit4"

#mysqldump  -uroot -p123456 --databases mydb1 > mydb1.bak;      
#将本地mysql服务器上的mydb1数据库导出到本地的mydb1.bak文件中

#mysqldump -h192.168.1.1 -uroot -p123456 mydb tb1 > tb1.bak;                       
#将192.168.1.1主机上的mydb数据库的tb1数据表导出到本地的tb1.bak文件中


#!/bin/bash
# MySQL数据库的用户名,可自定义
MYSQLDBUSERNAME=$1
# MySQL数据库的密码,可自定义
MYSQLDBPASSWORD=$2
# MySQL数据库的安装目录,--prefix=$MYSQBASEDIR,可自定义
MYSQBASEDIR=/usr/local/mysql
# MYSQL是mysql命令的绝对路径,可自定义
MYSQL=$MYSQBASEDIR/bin/mysql
# MYSQLDUMP是mysqldump命令的绝对路径,可自定义
MYSQLDUMP=$MYSQBASEDIR/bin/mysqldump

# BACKDIR是数据库备份的存放地址,可以自定义修改成远程地址
BACKDIR=/home/backup/logtables/
# 获取当前时间,格式为:年-月-日,用于生成以这种时间格式的目录名称
DATEFORMATTYPE1=$(date +%Y-%m-%d)
# 获取当前时间,格式为:年月日时分秒,用于生成以这种时间格式的文件名称
DATEFORMATTYPE2=$(date +%Y%m%d%H%M%S)

# 如果存在MYSQBASEDIR目录,则将MYSQDATADIR设置为$MYSQBASEDIR/data,具体是什么路径,就把data改成什么路径,否则将MYSQBASEDIR设定为/var/lib/mysql,可自定义
[ -d $MYSQBASEDIR ] && MYSQDATADIR=$MYSQBASEDIR/data || MYSQDATADIR=/var/lib/mysql
# 如果mysql命令存在并可执行,则继续,否则将MYSQL设定为mysql,默认路径下的mysql
[ -x $MYSQL ] || MYSQL=mysql
# 如果mysqldump命令存在并可执行,则继续,否则将MYSQLDUMP设定为mysqldump,默认路径下的mysqldump
[ -x $MYSQLDUMP ] || MYSQLDUMP=mysqldump
# 如果不存在备份目录则创建这个目录
[ -d ${BACKDIR} ] || mkdir -p ${BACKDIR}

#如果存在则删除该文件,防止多次备份数据混乱
if [ -d ${BACKDIR}/${DATEFORMATTYPE1} ] 

    then  
        echo '存在目录:'+ ${BACKDIR}/${DATEFORMATTYPE1} +',则进行删除'
        rm -rf ${BACKDIR}/${DATEFORMATTYPE1}
fi

[ -d ${BACKDIR}/${DATEFORMATTYPE1} ] || mkdir ${BACKDIR}/${DATEFORMATTYPE1}


DBLIST="account_synchronization_log commonuser_operation_log error_log exception_log dictionarymanagement manager_operation_log registuser_log user_access_log"
 #开始备份表
 echo "日志表数据备份开始..."
 
 for DBNAME in $DBLIST
    do
        echo $DBNAME
        ${MYSQLDUMP} --user=${MYSQLDBUSERNAME} --password=${MYSQLDBPASSWORD}  audit4 ${DBNAME} > ${BACKDIR}/${DATEFORMATTYPE1}/${DBNAME}.sql;  
        [ $? -eq 0 ] && echo "${DBNAME} has been backuped successful" || echo "${DBNAME} has been backuped failed"
        # 等待3s,可自定义
        /bin/sleep 1
 done
 #备份表结束
 
 
 echo $(date +%Y-%m-%d %H%M%S)
 echo "日志表数据备份完成,即将开始日志表数据清空操作..."
 
 
 #开始清理表

  for DBNAME in $DBLIST
    do
        
        echo "Truncate $DBNAME table from $MDB database..."
        
        $MYSQL -u $MYSQLDBUSERNAME -p$MYSQLDBPASSWORD -h $MHOST $MDB -e "TRUNCATE TABLE  $DBNAME"
        
        [ $? -eq 0 ] && echo "${DBNAME} has been TRUNCATE successful" || echo "${DBNAME} has been TRUNCATE failed"
        # 等待3s,可自定义
        /bin/sleep 1
 done
 #清理表结束

 echo $(date +%Y-%m-%d %H%M%S)
 echo "日志表数据清空完成!"

© 著作权归作者所有

yeqiang2015
粉丝 2
博文 21
码字总数 7740
作品 0
丰台
后端工程师
私信 提问
加载中

评论(1)

yeqiang2015
yeqiang2015 博主
自己搜索归纳,作为知识积累,有不足或有更好的办法的朋友请指点
Oracle如何实现创建数据库、备份数据库及数据导出导入的一条龙操作

Oracle中对数据对象和数据的管理,无疑都是使用PL/SQL Developer来进行管理,该工具也提供给我们很多方便、快捷的操作,使得我们不再为Oracle本身丑陋、难用的UI而抱怨。由于我们一般都是建建...

长平狐
2012/06/11
110
0
Oracle如何实现创建数据库、备份数据库及数据导出导入的一条龙操作

Oracle中对数据对象和数据的管理,无疑都是使用PL/SQL Developer来进行管理,该工具也提供给我们很多方便、快捷的操作,使得我们不再为Oracle本身丑陋、难用的UI而抱怨。由于我们一般都是建建...

长平狐
2012/08/22
203
0
zabbix优化记一次惨痛的zabbix数据库优化

最近负责公司的zabbix项目,由于前期缺少整体性能架构的规划,导致后期出一系列的问题,玩zabbix的兄弟都知道,zabbix最大的瓶颈本身不在zabbix服务,而在mysql数据库的压力上,因此,优化zab...

devilangel
2014/06/19
0
0
Mysql备份和恢复策略

在数据库表丢失或损坏的情况下,备份你的数据库是很重要的。如果发生系统崩溃,你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态。本文主要对MyISAM表做备份恢复。 备份策略...

学习环境
2015/12/15
85
0
MySQL用户管理、sql常用语句、mysql备份与恢复

MySQL用户管理 创建用户 .:表示所有库和表; user1:用户名; localhost:登录ip,默认localhost为本机登录ip,也可以使用%代表所有; 查看当前用户权限 常用的sql语句 select:查看; inse...

若白衣
2018/03/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

64.监控平台介绍 安装zabbix 忘记admin密码

19.1 Linux监控平台介绍 19.2 zabbix监控介绍 19.3/19.4/19.6 安装zabbix 19.5 忘记Admin密码如何做 19.1 Linux监控平台介绍: 常见开源监控软件 ~1.cacti、nagios、zabbix、smokeping、ope...

oschina130111
今天
13
0
当餐饮遇上大数据,嗯真香!

之前去开了一场会,主题是「餐饮领袖新零售峰会」。认真听完了餐饮前辈和新秀们的分享,觉得获益匪浅,把脑子里的核心纪要整理了一下,今天和大家做一个简单的分享,欢迎感兴趣的小伙伴一起交...

数澜科技
今天
7
0
DNS-over-HTTPS 的下一代是 DNS ON BLOCKCHAIN

本文作者:PETER LAI ,是 Diode 的区块链工程师。在进入软件开发领域之前,他主要是在做工商管理相关工作。Peter Lai 也是一位活跃的开源贡献者。目前,他正在与 Diode 团队一起开发基于区块...

红薯
今天
10
0
CC攻击带来的危害我们该如何防御?

随着网络的发展带给我们很多的便利,但是同时也带给我们一些网站安全问题,网络攻击就是常见的网站安全问题。其中作为站长最常见的就是CC攻击,CC攻击是网络攻击方式的一种,是一种比较常见的...

云漫网络Ruan
今天
12
0
实验分析性专业硕士提纲撰写要点

为什么您需要研究论文的提纲? 首先当您进行研究时,您需要聚集许多信息和想法,研究论文提纲可以较好地组织你的想法, 了解您研究资料的流畅度和程度。确保你写作时不会错过任何重要资料以此...

论文辅导员
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部