一个mysql的备份脚本(可以结合多实例进行调整)

mysql数据库备份脚本:

#!/bin/bash
#定义变量信息
USER=root
PASS=redhat12345  
SOCKET=/data/3306/mysql.sock
CMD="mysql -u$USER -p$PASS -S $SOCKET"
DUMP="mysqldump --opt -u$USER -p$PASS -S $SOCKET"
DES="/usr/src/mysqlbackup"
BACKUPTIME="date +%F-%H:%M"
#目录判断
if [ ! -d "$DES/`date +%F`" ];then
mkdir -p "$DES/`date +%F`"
fi
#mysqldump备份数据库
echo "----------------------------start backup mysql-------------------------------"
for database in `$CMD -e "show databases" | sed ‘1,2d‘ | egrep -v "mysql|schema"`
do
$DUMP $database -B|gzip>$DES/`date +%F`/${database}.sql.gz
if [ $? -eq 0 ];then
echo "$database has been backup successful"
else
echo "$database has been not successful"
fi
/bin/sleep 5
done
echo "---------------------------backup is end -------------------------------------"

执行结果如下:

[[email protected] mysqlbackup]# pwd
/usr/src/mysqlbackup
[[email protected] mysqlbackup]# ll
总用量 4
-rw-r--r-- 1 root root 805 12月  6 18:50 backup.sh
[[email protected] mysqlbackup]# bash backup.sh 
----------------------------start backup mysql-------------------------------
dawnpro has been backup successful
hangzhou has been backup successful
james has been backup successful
wanlong has been backup successful
---------------------------backup is end -------------------------------------
[[email protected] mysqlbackup]# ll
总用量 8
drwxr-xr-x 2 root root 4096 12月  6 18:56 2016-12-06
-rw-r--r-- 1 root root  805 12月  6 18:50 backup.sh
[[email protected] mysqlbackup]# ll 2016-12-06/
总用量 16
-rw-r--r-- 1 root root 512 12月  6 18:56 dawnpro.sql.gz
-rw-r--r-- 1 root root 513 12月  6 18:56 hangzhou.sql.gz
-rw-r--r-- 1 root root 511 12月  6 18:56 james.sql.gz
-rw-r--r-- 1 root root 511 12月  6 18:56 wanlong.sql.gz
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| dawnpro            |
| hangzhou           |
| james              |
| mysql              |
| performance_schema |
| wanlong            |
+--------------------+
7 rows in set (0.00 sec)

做个简单的记录,后面有空再补充详细的注解或者对脚本进行优化

时间: 2024-12-08 14:45:50

一个mysql的备份脚本(可以结合多实例进行调整)的相关文章

13 一个Mysql自动备份脚本

写了一个Mysql备份的脚本,大家看看,有什么不妥地方. 这是我写的第一个Shell脚本,大家帮忙看看, 有谁需要的,我可以发给他. 可以将这个脚本放进crontab,每天凌晨执行一次,自动备份 这个脚本每天最多只执行一次,而且只保留最近五天的备份在服务器上. 代码: #!/bin/bash #This is a ShellScript For Auto DB Backup #Powered by aspbiz #2004-09 #Setting #设置数据库名,数据库登录名,密码,备份路径,日

mysql数据库备份脚本

自动备份Mysql脚本: 如下脚本为mysql自动备份脚本,仅供参考,可以根据实际情况修改. #!/bin/sh #auto backup mysql #20170329 #Define PATH定义变量 BAKDIR=/data/backup/mysql/`date +%Y-%m-%d` MYSQLDB=webapp MYSQLPW=backup MYSQLUSR=backup #must use root user run scripts 必须使用root用户运行,$UID为系统变量 if

Ubuntu Server下MySql数据库备份脚本代码

明: 我这里要把MySql数据库存放目录/var/lib/mysql下面的pw85数据库备份到/home/mysql_data里面,并且保存为mysqldata_bak_2012_04_11.tar.gz的压缩文件格式(2012_04_11是指备份执行时当天的日期), 最后只保留最近7天的备份. 实现步骤: 1.创建保存备份文件的目录:/home/mysql_datacd /home #进入目录mkdir mysql_data #创建目录2.创建备份脚本文件:/home/mysql_data/m

Mysql 数据库备份脚本

[[email protected] sbin]# more mysqlbackup.sh #If any of your tables run on InnoDB engine #directory to store backups inDST=/backup/dbback# A regex, passed to egrep -v, for which databases to ignoreIGNREG='^snort$'# The MySQL username and passwordDBU

数据库mysql 分库备份脚本

数据库mysql 分库备份脚本 在企业工作中,我们经常会遇到数据库备份问题,当然我之前不止提到过mysql 主从,现在我们 先来看看单库如何来实现分库定期进行备份的,先看一下以下脚本: vi mysql_backup.sh #!/bin/sh #backup tiandao bbs edoing #coding tonye.li MYUSER=root MYPASS=meidi SOCKET=/data/3306/mysql.sock MYCMD="mysql -u$MYUSER -p$MYPA

MySQL数据备份脚本

#!/bin/bash #MySQL备份 dates=`date +%Y%m%d` datey=`date -d"30 days ago" +%Y%m%d` mkdir -p /home/backup cd /home/backup mysqldump -uroot -pwyqj_root fight_cancer > fight_cancer.$dates.sql mysqldump -uroot -pwyqj_root redmine > redmine.$dates.

Windows下MySQL数据库备份脚本(一)

说明: MySQL数据库安装目录:C:\Program Files\MySQL\MySQL Server 5.0 MySQL数据库存放目录:C:\Program Files\MySQL\MySQL Server 5.0\data MySQL数据库备份目录:D:\MySQLdata_Bak 实现目的:备份MySQL数据库存放目录中的mysql数据库到D:\MySQLdata_Bak目录,按照日期存放, 并且只保留最近7天的数据 例如: D:\MySQLdata_Bak\mysql\20120404

mysql数据库备份脚本一例

例子,mysql数据库备份脚本.vim mysql.sh #!/bin/bash DAY=`date +%Y-%m-%d` //日期以年月日显示并赋予DAY变量 SIZE=`du -sh /var/lib/mysql //查看mysql的大小并且赋予变量SIZE echo "Date :$DAY" >> /tmp/mysqlbak.txt //输出日期到mysqlbak.txt文件 echo "Date Size : $SIZE" >> /t

mysql自动备份脚本及异地定时FTP

分享个自己写的mysql自动备份脚本.定时执行设置及windows自动FTP,请大家指教. 前提环境:mysql数据库服务器开启vsftpd,并配置合适帐号以便能被内网存储服务器FTP 第一步:编写mysql自动执行脚本 #!/bin/sh # mysql_db_backup.sh: backup mysql databases. # # Last updated: Wed Nov  9 07:01:01 CST 2011 # ----------------------------------