Shell脚本备份数据库(多库)

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
export PATH
#数据库用户名
dbuser=‘root‘
#数据库用密码
dbpasswd=‘password‘
#需要备份的数据库,多个数据库用空格分开
dbname=(‘dbname1‘ ‘dbname2 ‘dbname3‘ ‘dbname4‘ ‘dbname5‘)
#备份时间
backtime=`date +%Y%m%d%H%M%S`
#mysql安装路径
mysqlpath=‘/data/mysql5.6/bin‘
#日志备份路径
logpath=‘/store/bank/data‘
#数据备份路径
datapath=‘/store/bank/data‘
#日志记录头部
echo ‘"备份时间为${backtime},备份数据库表 ${dbname} 开始" >> ${logpath}/log.log
#正式备份数据库 取上面变量数组
for DB_name in ${dbname[@]}; do
#mysqldump -u ${dbuser} -p${dbpasswd} ${DB_name}> ${logpath}/${backtime}.sql 2>> ${logpath}/mysqllog.log
source=`${mysqlpath}/mysqldump -u${dbuser} -p${dbpasswd} ${dbname}> ${logpath}/${DB_name}${backtime}.sql` 2>> ${logpath}/mysqllog.log;
#备份成功以下操作
if [ "$?" == 0 ];then
cd $datapath
#为节约硬盘空间,将数据库压缩
tar jcvf ${DB_name}${backtime}.tar.bz2 ${table}${backtime}.sql > /dev/null
#删除原始文件,只留压缩后文件
rm -f ${datapath}/${DB_name}${backtime}.sql
#删除七天前备份,也就是只保存7天内的备份
find $datapath -name "*.tar.bz2" -type f -mtime +7 -exec rm -rf {} \; > /dev/null 2>&1
echo "数据库表 ${dbname} 备份成功!!" >> ${logpath}/mysqllog.log
else
#备份失败则进行以下操作
echo "数据库表 ${dbname} 备份失败!!" >> ${logpath}/mysqllog.log
fi
done

时间: 2024-08-08 22:09:44

Shell脚本备份数据库(多库)的相关文章

[Shell 脚本] 备份数据库文件至OSS服务(纯shell脚本无sdk)

背景: 凡事使用服务器搭建的网站就需要定时备份网站数据,常见的方法是打包网站目录,然后备份到FTP服务器上等.也有通过OSS SDK把备份的网站文件上传到OSS服务器上,但是通过SDK来实现,需要一定的技术能力,而且相对比较复杂,需要使用更多的文件,而这篇文章是通过shell脚本,并不是通过OSS SDK来上传文件,简单方便. 步骤: 1.首先需要在阿里云注册账号,开通OSS服务,创建bucket,Bucket设置为私有读写. 2.将下面的脚本文件复制下来,保存为 .sh 脚本文件(例如:bac

shell脚本+mysql数据库组合进行数据安全监控

shell脚本 + mysql数据库 实现企业级会话边界控制器文件解析并告警 dirsx30001.sh处理文件,生成mysql备份文件的方式进行导入 #/bin/bash ##环境变量 path=/home/sbclog/sx30001 ##由于抓取的日志文件中没有年份参数,故导入系统年份参数,以达到数据库时间字段datetime ##也可以抓取tar包的名字中的字段 date_year=`date|cut -c 25-` #test ! -e $path/*.tar &&echo &q

shell脚本操作数据库

#!/bin/bash HOST_NAME="localhost" PORT=3306 USERNAME="root" PASSWORD="root" DBNAME="test" TABLENAME="tb_test" today=`date +%Y-%m-%d` #删除数据 delete_sql="delete from ${TABLENAME} where todaytime!= '${tod

使用shell脚本生成数据库markdown文档

学习shell脚本编程的一次实践,通过shell脚本生成数据库的markdown文档,代码如下: HOST=xxxxxx PORT=xxxx USER="xxxxx" PASSWORD="xxxxxx" DATABASE_PREFIX="xxxxxx" QUERY_DATABASE="select distinct TABLE_SCHEMA from information_schema.TABLES where TABLE_TYPE=

Saiku数据库迁移后的刷新脚本-Shell脚本读取数据库中的数据(二十三)

Saiku数据库迁移后的刷新脚本 之前有谈过对saiku中的数据进行刷新,因为saiku默认会从缓存中查询数据,但是配置不使用缓存又会效率低下... 所以这里就需要做一个数据刷新,每次ETL之后都需要执行一遍数据刷新脚本. 刷新脚本主要分为两部分 1.使用shell命令从数据库中读取已有的用户信息 (因为已经做过数据迁移,数据库已经从h2转为我们自己的mysql) saikuRefresh.sh #!/bin/bash #数据库连接信息 HOSTNAME="10.11.22.33" #

Shell 脚本备份MySQL数据库

(1)思路 <1>安装MySQL数据库 <2>创建数据库,表,插入数据 <3>授权一个用于备份数据库的用户名和密码 <4>备份数据库的命令: mysqldump -u root -p 1234 -d MySQLDB > 1.sql <5>引入if语句实现备份全部数据库 <6>引入for循环语句,实现备份多个数据库 (2)实战案例 编写MySQL数据库备份脚本,可以实现备份任意数据库,输入A,就备份A库,输入B,就备份B库,输入C

linux shell脚本备份mysql数据库

#!/bin/sh # 备份数据库 # Mysql 用户名密码 MYSQL_USER=root MYSQL_PASS=root BACKUP_DIR=/data/backup/mysql DATA_DIR=/data/backup/dbdata # 查询mysql中所有数据库名字 SQL_STRING="SELECT SCHEMA_NAME AS db FROM information_schema.SCHEMATA WHERE SCHEMA_NAME NOT IN ('mysql', 'inf

为服务器添加定时脚本+备份数据库

首先crontab -l 查看已有的时程表,能够展示当前的定时任务有哪些 编写脚本: #!/bin/bash HOST:127.0.0.1 User=root PW=mima DATETIME=$(date +%Y_%m_%d_%H%M%S) echo "执行日期:" + ${DATETIME} echo "开始执行清理8小时前binlog"mysql -u$User -p$PW <<EOF PURGE MASTER LOGS BEFORE DATE_S

Transact-SQL 示例 - 使用脚本备份数据库的示例

在常规的数据库开发与维护的过程中,常常需要对数据库进行数据备份,最入门的办法就是使用SSMS图形化界面提供的数据库备份向导一步一步操作进行备份,这种方式虽然简单快捷但是日子久了就会觉得重复且繁琐.下面将为大家奉献一个简单易用的sql脚本备份方法,也可以稍微改进一下放到定时任务内成为数据库定时备份的功能. 下面例子当中参数@enable_compression是sql2008企业版往上才提供的功能,它可以压缩数据库备份出来的备份文件. declare @database_name nvarchar