mysql备份脚本 mysqldump使用方法详解

作者:leffss 时间:2024-01-24 12:27:04 

本文实例为大家分享了mysql备份脚本,供大家参考,具体内容如下


#!/bin/bash
#全备方式,一般在从机上执行,适用于小中型mysql数据库
#删除15天以前备份
#作者:fafu_li
#时间:2015.08.10

source /etc/profile    #加载系统环境变量
source ~/.bash_profile  #加载用户环境变量
set -o nounset       #引用未初始化变量时退出
#set -o errexit      #执行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 -type f -mtime +$day -exec rm -rf {} \; > /dev/null 2>&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
   tar zcpvf $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_log 2>&1
done

echo "备份结束,结果查看 $backup_log"
du $backup_path/*$date* -sh | awk '{print "文件:" $2 ",大小:" $1}'

来源:http://www.cnblogs.com/leffss/p/7832047.html

标签:mysql,备份,mysqldump
0
投稿

猜你喜欢

  • python重试装饰器的简单实现方法

    2022-07-15 12:54:10
  • Python Flask 实现 HTML 文件压缩案例代码(9 级压缩)

    2021-05-22 15:22:13
  • Vue子组件内的props对象参数配置方法

    2024-04-30 10:39:09
  • pyinstaller将含有多个py文件的python程序做成exe

    2021-03-04 21:02:22
  • Javascript模拟加速运动与减速运动代码分享

    2024-06-07 15:27:46
  • python实现转圈打印矩阵

    2022-10-28 09:23:20
  • 如何用SA-FileUp上传一个单纯的HTML文件?

    2010-05-18 18:29:00
  • 浅谈Python中range与Numpy中arange的比较

    2021-05-21 00:15:48
  • GO语言的IO方法实例小结

    2023-09-17 08:47:24
  • 如何使用ASP来读写注册表

    2007-09-20 13:08:00
  • SQL Server之SELECT INTO 和 INSERT INTO SELECT案例详解

    2024-01-22 01:11:56
  • mysql insert 存在即不插入语法说明

    2024-01-17 18:46:05
  • YOLOv5车牌识别实战教程(八)Web应用与API开发

    2022-12-29 23:44:22
  • Pyecharts 动态地图 geo()和map()的安装与用法详解

    2023-08-16 17:07:34
  • CGArt®2008 贺岁刊电子杂志玉鼠闹春

    2008-02-15 08:59:00
  • sqlserver获取当前日期的最大时间值

    2011-09-30 11:44:50
  • php中防止SQL注入的最佳解决方法

    2023-08-19 21:52:20
  • SQL为什么不建议执行超过3表以上的多表关联查询

    2024-01-28 07:58:00
  • python jenkins 打包构建代码的示例代码

    2022-10-05 02:22:02
  • Vue中添加手机验证码组件功能操作方法

    2023-07-02 16:57:16
  • asp之家 网络编程 m.aspxhome.com