#!/bin/bash
#mysql全备脚本,此脚本可以备份多个数据库,
#为每个数据建立单独的文件夹进行备份
#author:yxy
#website:www.sql8.net
#mail:anybooks@qq.com
#created:2014-8-14
#Mysql dabase information
#主机
db_host="localhost"
#数据库帐号
db_user="root"
#数据库密码
db_passwd="12356789"
#mysql安装目录
MYSQL="/opt/lampp/bin/mysql"
#mysql命令目录
MYSQLDUMP="/opt/lampp/bin/mysqldump"
#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
#databases
#需要备份的数据库,如果有多个数据库,请用,分隔
databaseList="dd1,dd2"
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
分享到:
相关推荐
此脚本不仅适用于实际环境中数据库备份的需求,同时也为学习Shell脚本编写提供了一个良好的示例。 #### 核心功能与特点 - **自动备份MySQL数据库**:脚本能够自动化地对指定的MySQL数据库进行全量备份。 - **备份...
了解这些基本概念后,你可以查看压缩包内的`基于xtrabackup的MySQL数据库备份及还原Shell脚本`,这个脚本将详细展示如何结合`xtrabackup`和Shell来自动化MySQL数据库的备份与还原流程。在实际使用时,你需要根据自己...
此批处理,是为一位朋友写的在Windows下自动备份Mysql数据库,今天共享出来,加强了一些功能。和改进了获取数据库列表的方式。 此批处理脚本的功能: 在配置正确的情况下,如果直接运行脚本,将备份指定MySQL数据库...
利用 crontab -e 将此脚本加入即可,主要是用于linux服务器定时自动备份mysql数据库的脚本sh
windows定时任务备份mysql数据库脚本
windows下.bat脚本备份mysql多个数据库十天内的数据,十天以上自动删除
1.Windows服务器下 2、设置每日定时备份多个数据库 3、备份到执行目录下 4、记录数据库状态及日志备份日志 5、可支持删除多少天前的备份
在本场景中,我们有一个名为`auto_mysql_back.sh`的shell脚本,它用于自动化MySQL数据库的备份过程。下面将详细解释这个脚本可能涉及的关键知识点。 1. **MySQL数据库备份**: - **全量备份**:通常,全量备份是指...
Mysql数据库远程备份脚本:实现在windows上按日期备份远程mysql数据库数据,结合windows任务可实现自动备份
5、要备份的库(注意里面的说明:如需备份多个库,可以用到数组;如只备份一个库,可直接使用命令备份即可;如果要备份全部库,把库名改为:--all-databases即可;在脚本里面都是有说明的;总之,注意里面的说明!!...
mysql 数据库备份脚本,可以在win下做定时操作,也可以在服务器上做备份脚本
本文将详细讲解如何通过Data文件夹备份和还原实现MySQL数据库的备份及恢复,这是一种简单直接的方法,尤其适合小型数据库或者开发测试环境。 首先,我们需要理解MySQL的数据存储结构。MySQL数据库的数据文件主要...
今天这个备份分二个版本一个是linux上直接安装的mysql,另一种是docker上安装的mysql。基本操作都一样只是备份sql语句不同而已。可以选择设置需要备份的库,自动备份压缩,自动删除 7 天前的备份,需要使用 crontab ...
在`readme.txt`文件中,可能会包含关于如何配置和运行此脚本的说明,以及如何自定义备份设置(如备份频率、保留的备份数量)等信息。 总的来说,Python为MySQL数据库的定时备份提供了高效且灵活的解决方案。通过...
通过理解这些知识点,我们可以构建一个完整的流程,即使用Python脚本连接到MySQL服务器,调用mysqldump工具生成SQL备份文件,然后可能使用7z进行压缩,最后将备份文件存储到指定位置。同时,配置文件如`config.ini`...
本文将详细介绍如何编写一个在Linux环境下,每天凌晨3点自动执行的MySQL数据库备份脚本,以及如何配置Linux的定时任务来执行这个脚本。 首先,我们来看`DB_backup.sh`这个脚本文件。它通常包含以下核心部分: 1. *...
MySQL数据库在日常运营中起着至关重要的作用,因此定期备份是...以上就是关于"mysql 自动备份数据库脚本"的相关知识点,通过理解并正确运用这些概念,可以构建一个稳定、高效的数据库自动备份系统,确保数据的安全。
该脚本主要实现了MySQL数据库的备份功能,并根据当前日期创建对应的备份文件夹与备份文件,同时对备份文件进行了压缩处理。此脚本适用于Windows环境。 #### 二、脚本执行流程及关键指令解释 1. **初始化命令行界面...
使用脚本实现mysql数据库每天定时自动备份,防止数据库意外损坏无法还原
在shell脚本中,我们可以将这些参数动态设置,并根据需要添加额外的选项,例如备份多个数据库、包含或排除特定表等。 **增量备份**: 实现增量备份通常需要结合使用`--master-data`和`--single-transaction`选项,...