`
snihcel
  • 浏览: 4350 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

mysql全备脚本升级版,支持多台主机,多个数据库

阅读更多
此脚是对上午写的脚本的升级,(前一版地址http://www.sql8.net/a/course/shujuku/Mysql/2014/0815/30340.html)

针对同事多个数据库且数据帐号,密码,主机均可能不相同的情况改写

改写后,需要两个脚本协同完成。

一为批量执行脚本 batch.sh

二为数据备份脚本databak.sh


*******************************批量执行脚本 batch.sh**************************************


sh databak.sh  192.168.1.1 database1 bak1 12322 
sh databak.sh  localhost database2,database3,database4 bak 123333 

*********************************************************************************************


*******************************数据备份脚本databak.sh**************************************
#!/bin/bash
#mysql全备脚本,此脚本可以备份多个数据库,
#为每个数据建立单独的文件夹进行备份
#对于不同帐号,不同库,不是主机
#调用参数格式 主机 数据库 帐号 密码
#调用方法
#同一帐号多个数据库可以用,分隔
#sh databak.sh  主机 数据库 帐号 密码 
#sh databak.sh  localhost youoil bak 123 




#author:yxy
#website:www.sql8.net
#mail:anybooks@qq.com
#created:2014-8-14


#Mysql dabase information
#主机
db_host=$1
#databases
#需要备份的数据库,如果有多个数据库,请用,分隔
databaseList=$2
#数据库帐号
db_user=$3
#数据库密码
db_passwd=$4
#mysql安装目录
MYSQL="/opt/lampp/bin/mysql"
#mysql命令目录
MYSQLDUMP="/opt/lampp/bin/mysqldump"


if [ "$db_host" == "" ] || [ "$databaseList" == "" ] || [ "$db_user" == "" ] || [ "$db_passwd" == "" ]; then
echo "Insufficient arguments"
exit 1
fi
echo "$db_host" "$databaseList" "$db_user"  "$db_passwd"




#Path information
#存放备份文件的路径
BACKUP_DB="/opt/backup/database"
LogFile=$BACKUP_DB"/bak.log"


#Time information
#时间
time=`date +"%Y-%m-%d-%H-%M-%S"`
day=`date +"%d"`
month=`date +"%Y-%m"`
weekday=`date +"%u"`






#Path enable write
if [ ! -w "$BACKUP_DB" ]; then
chmod -R 700 $BACKUP_DB
fi


#echo "**********************************host info****************************************"
#echo "db_host:"$db_host
#echo "db_user:"$db_user
#echo "db_passwd:"$db_passwd
#echo "MYSQL:"$MYSQL
#echo "MYSQLDUMP:"$MYSQLDUMP
#echo "databaseName:"$databaseName
#echo "BACKUP_DB:"$BACKUP_DB
#echo "**********************************************************************************"




#Mysql Backup
Date=`date +%Y%m%d`
Begin=`date +"%Y-%m-%d %H:%M:%S"`
#echo "start backup database:"$databaseName"   "$Begin


for databaseName in `echo "$databaseList" | sed 's/,/\n/g'`
do 
    echo $databaseName


#fileName
#生成备份文件名
fileName=$databaseName"-"$time".sql"
#生成备份文件完整路径
BACKUP_DBPATH=$BACKUP_DB"/"$databaseName




#echo "***********************************database Info***********************************************"
#echo "BACKUP_DBPATH:"$BACKUP_DBPATH
#echo "fileName:"$fileName
#echo "**********************************************************************************"





if [ ! -d "$BACKUP_DBPATH" ]; then
mkdir "$BACKUP_DBPATH"
fi
#备份mysql
$MYSQLDUMP -u $db_user -p$db_passwd -h $db_host $databaseName > $BACKUP_DBPATH/$fileName
#打包.sql文件
cd $BACKUP_DBPATH && tar -czf $fileName.tar.gz $fileName && rm -rf $fileName && chmod go-rwx $fileName.tar.gz


Last=`date +"%Y-%m-%d %H:%M:%S"`
#echo "end backup database:"$databaseName"   "$Last
#输出日志
echo start:$Begin end:$Last $fileName succ >> $LogFile


done

********************crontab设置**********************************************
根据需要设置相关备份规则,此处略则部分规则

#每天1点备份
0 1 * * * cd /opt/backup/database && ./1.sh


#每周一1点备份
0 1 * * 1 cd /opt/backup/database && ./1.sh


#每2小时备份
0 */2 * * * cd /opt/backup/database && ./1.sh


#每2天备份
0 0 */2 * * cd /opt/backup/database && ./1.sh

#每个月5号1点20分备份
20 1 5 * * cd /opt/backup/database && ./1.sh


更多contrab规则请看
http://www.sql8.net/a/course/caozuoxitong/liunx/2014/0815/30328.html

0
0
分享到:
评论

相关推荐

    Mysql全备脚本发附件到邮箱

    本文将详细介绍一个用于MySQL数据库全量备份并将其作为附件通过电子邮件发送的Shell脚本。此脚本不仅适用于实际环境中数据库备份的需求,同时也为学习Shell脚本编写提供了一个良好的示例。 #### 核心功能与特点 - *...

    windows定时任务备份mysql数据库脚本

    windows定时任务备份mysql数据库脚本

    spring_acegi精彩实例,带MYSQL数据库脚本,保证能运行

    spring_acegi精彩实例,带MYSQL数据库脚本,保证能运行spring_acegi精彩实例,带MYSQL数据库脚本,保证能运行spring_acegi精彩实例,带MYSQL数据库脚本,保证能运行 spring_acegi精彩实例,带MYSQL数据库脚本,保证...

    windows下备份mysql数据库脚本.bat文件

    针对"windows下备份mysql数据库脚本.bat文件"的描述,我们可以推断出这个脚本的主要功能是自动备份MySQL数据库。这个脚本需要包含以下关键部分: 1. **连接信息**:包括MySQL服务器的地址(通常是本地),数据库...

    Windows服务器如何编写多个MySQL数据库定时备份脚本

    1.Windows服务器下 2、设置每日定时备份多个数据库 3、备份到执行目录下 4、记录数据库状态及日志备份日志 5、可支持删除多少天前的备份

    数据库转换工具MySQL 转为SqlServer 脚本

    本主题聚焦于如何使用特定工具或脚本将MySQL数据库转换为SQL Server,这一过程通常称为“数据库迁移”。以下是关于这个过程的一些关键知识点: 1. **数据库迁移的目的**:迁移可能出于多种原因,如业务增长、性能...

    mysql数据库脚本示例

    mysql数据脚本示例

    数据库脚本升级小工具

    4. **兼容性**:好的数据库脚本升级工具应考虑不同数据库管理系统(如MySQL、PostgreSQL、Oracle、SQL Server等)的语法差异,提供跨平台的支持。 5. **回滚机制**:在升级过程中,如果出现错误,工具需要提供回滚...

    Mysql数据库远程备份脚本

    Mysql数据库远程备份脚本:实现在windows上按日期备份远程mysql数据库数据,结合windows任务可实现自动备份

    mysql数据库备份脚本

    使用脚本实现mysql数据库每天定时自动备份,防止数据库意外损坏无法还原

    mysql自动备份数据库脚本

    在本场景中,我们有一个名为`auto_mysql_back.sh`的shell脚本,它用于自动化MySQL数据库的备份过程。下面将详细解释这个脚本可能涉及的关键知识点。 1. **MySQL数据库备份**: - **全量备份**:通常,全量备份是指...

    基于xtrabackup的MySQL数据库备份及还原Shell脚本.zip

    了解这些基本概念后,你可以查看压缩包内的`基于xtrabackup的MySQL数据库备份及还原Shell脚本`,这个脚本将详细展示如何结合`xtrabackup`和Shell来自动化MySQL数据库的备份与还原流程。在实际使用时,你需要根据自己...

    mysql数据库备份标准脚本

    mysql 数据库备份脚本,可以在win下做定时操作,也可以在服务器上做备份脚本

    mysql数据库每天凌晨3点备份数据库的脚本

    本文将详细介绍如何编写一个在Linux环境下,每天凌晨3点自动执行的MySQL数据库备份脚本,以及如何配置Linux的定时任务来执行这个脚本。 首先,我们来看`DB_backup.sh`这个脚本文件。它通常包含以下核心部分: 1. *...

    linux服务器定时自动备份mysql数据库的脚本sh

    利用 crontab -e 将此脚本加入即可,主要是用于linux服务器定时自动备份mysql数据库的脚本sh

    windows下.bat脚本备份mysql多个数据库十天内的数据

    windows下.bat脚本备份mysql多个数据库十天内的数据,十天以上自动删除

    python备份mysql数据库

    在这个场景中,"python备份mysql数据库"的实践主要涉及到以下几个核心知识点: 1. Python语言:Python是一种高级编程语言,以其简洁的语法和丰富的库资源而闻名。在备份MySQL数据库时,Python可以编写脚本来自动化...

    MySQL数据库:数据库脚本的编写.pptx

    MySQL 数据库脚本编写是数据库管理中一个非常重要的步骤,它可以帮助我们快速地创建和管理数据库结构。本文将详细介绍 MySQL 数据库脚本编写的基本概念、方法和步骤,以及在 Navicat 中导出数据库脚本文件的方法。 ...

    mysql数据库初始化脚本

    mysql数据库初始化脚本,这是某个项目的数据库初始化脚本

    一键安装mysql数据库脚本.zip

    此资源为centos7环境下通过脚本一键安装mysql的shell脚本,数据库安装前需要将mysql-5.7*.tar.gz文件、my.cnf.bak、startmysql.sh、stopmysql.sh拷贝至安装脚本路径下。其中my.cnf.bak为mysql配置文件模板,...

Global site tag (gtag.js) - Google Analytics