mysql备份脚本 mysqldump使用方法详解
本文实例为大家分享了mysql备份脚本,供大家参考,具体内容如下
#!/bin/bash
#全备方式,一般在从机上执行,适用于小中型mysql数据库
#删除15天以前备份
#作者:fafu_li
#时间:2015.08.10
source/etc/profile#加载系统环境变量
source~/.bash_profile#加载用户环境变量
set-onounset#引用未初始化变量时退出
#set-oerrexit#执行shell命令遇到错误时退出
user="root"
password="123456"
host="localhost"
port="3306"
#需备份的数据库,数组
db=("test")
#备份时加锁方式,
#MyISAM为锁表--lock-all-tables,
#InnoDB为锁行--single-transaction
lock="--single-transaction"
mysql_path="/usr/local/mysql"
backup_path="${mysql_path}/backup"
date=$(date+%Y-%m-%d_%H-%M-%S)
day=15
backup_log="${mysql_path}/backup.log"
#建立备份目录
if[!-e$backup_path];then
mkdir-p$backup_path
fi
#删除以前备份
find$backup_path-typef-mtime+$day-execrm-rf{}\;>/dev/null2>&1
echo"开始备份数据库:${db[*]}"
#备份并压缩
backup_sql(){
dbname=$1
backup_name="${dbname}_${date}.sql"
#-R备份存储过程,函数,触发器
mysqldump-h$host-P$port-u$user-p$password$lock--default-character-set=utf8--flush-logs-R$dbname>$backup_path/$backup_name
if[[$?==0]];then
cd$backup_path
tarzcpvf$backup_name.tar.gz$backup_name
size=$(du$backup_name.tar.gz-sh|awk'{print$1}')
rm-rf$backup_name
echo"$date备份$dbname($size)成功"
else
cd$backup_path
rm-rf$backup_name
echo"$date备份$dbname失败"
fi
}
#循环备份
length=${#db[@]}
for((i=0;i<$length;i++));do
backup_sql${db[$i]}>>$backup_log2>&1
done
echo"备份结束,结果查看$backup_log"
du$backup_path/*$date*-sh|awk'{print"文件:"$2",大小:"$1}'
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。