【mysql】mysql 自动备份脚本
2021/11/25 19:10:13
本文主要是介绍【mysql】mysql 自动备份脚本,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
#!/bin/bash . /etc/profile #. ~/.bash_profile #备份路径 BACKUP=/mnt/mysql_bak #当前时间 DATETIME=$(date +%Y-%m-%d) #DATETIME=$(date +%Y-%m-%d-%H-%M-%S) echo "===备份开始===" echo "备份文件存放于${BACKUP}/$DATETIME" #数据库地址 HOST=xxx.xxx.xxx.xxx #数据库用户名 DB_USER=root #数据库密码 DB_PW=xxxxxx #创建备份目录 [ ! -d "${BACKUP}/$DATETIME" ] && mkdir -p "${BACKUP}/$DATETIME" #后台系统数据库 all=' xxx xxx xxx xxx ' for DATABASE in $all do echo $DATABASE-$DATETIME #直接导出zip压缩文件,其中dump的文件不为sql格式 #mysqldump -u${DB_USER} -p${DB_PW} --single-transaction --host=$HOST -q -R --databases $DATABASE | gzip > ${BACKUP}/$DATETIME/$DATABASE.zip #导出sql文件,后续需要压缩 mysqldump -h xxx.xxx.xxx.xxx -u${DB_USER} -p${DB_PW} ${DATABASE} >${BACKUP}/$DATETIME/$DATABASE-$DATETIME.sql echo "===导出成功,开始压缩===" #压缩成tar.gz包 cd $BACKUP/$DATETIME/ tar -zcvf $DATABASE-$DATETIME.tar.gz $DATABASE-$DATETIME.sql #备份到服务器B #sshpass -p 密码 scp $DATABASE-$DATETIME.sql 用户名@10.3.242.47:/另一台服务器的备份目录/ #删除备份文件 rm -rf ${BACKUP}/$DATETIME/$DATABASE-$DATETIME.sql done #删除1天前备份的数据,可以自行更改 find $BACKUP -mtime +1 -name "2021*" -exec rm -rf {} \; echo "===数据库备份到服务器成功==="
xxx为变量根据实际情况替换
存在问题:
备份没有循环机制,备份完成一个库之后会接着压缩、删除原文件,本脚本无法做到把所有的库备份完成之后统一压缩并删除,后续还需改进
配置定时任务
crontab -e
这篇关于【mysql】mysql 自动备份脚本的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-25MySQL报错Duplicate entry '0' for key 'PRIMARY'
- 2024-05-29阿里 Canal 实时同步 MySQL 增量数据至 ClickHouse 数据库
- 2024-05-24在Linux下管理MySQL的大小写敏感性
- 2024-04-26MySQL查出时间比实际晚8小时的解决方案
- 2024-04-01JPA不识别MySQL的枚举类型
- 2024-03-30mysql数据库表卡死解决方法
- 2024-03-15MySQL多数据源笔记5-ShardingJDBC实战
- 2024-03-11natural join mysql
- 2024-03-11关于VS2017,VS2015 中利用 EF使用Mysql 不显示数据源问题解决方案
- 2024-02-26mysql 阿里云xb后缀备份文件恢复-icode9专业技术文章分享