定时自动备份mysql数据库

Linux自动备份mysql数据库(含docker部署的)

此处以docker部署的mysql为例

创建备份脚本

脚本内容

首先使用bash命令创建一个sh脚本文件并赋予执行权限

Bash

touch Auto_backup.sh && chmod +x Auto_backup.sh

使用编辑器打开这个脚本,并添加以下内容

Bash

#!/bin/bash
# 自动备份docker mysql数据库

# 定义备份路径
backup_dir=/Users/zdy/Desktop/mysql

# 定义备份时间
backup_time=`date +%Y_%m_%d_%H时%M分%S秒`

# 使用进入mysql容器执行mysqldump命令并备份数据库并将文件名更改为当前时间,此处--databases参数为备份多个数据库,若只有一个数据库备份,可以省略改参数
docker exec mysql mysqldump -u数据库用户名 -p数据库密码 --databases waline matomo | gzip > $backup_dir/backup_$backup_time.sql.gz

# 非docker部署时使用
# mysql mysqldump -u数据库用户名 -p数据库密码 --databases waline matomo | gzip > $backup_dir/backup_$backup_time.sql.gz

# 删除7天前的备份
find /www/mysql_backup -name "*.sql.gz" -mtime +7 | xargs rm -f
# 备用删除命令
# find $backup_dir -mtime +7 -name "*.sql.gz" -exec rm -rf {} \;

# 如果不需要压缩使用(直接备份为SQL文件)
# docker exec mysql mysqldump -u数据库用户名 -p数据库密码 --databases waline matomo  > $backup_dir/backup_$backup_time.sql
# find /www/mysql_backup -name "*.sql.gz" -mtime +7 | xargs rm -f

此时这个脚本就手动运行可以进行数据备份了,此处会提示在命令行界面上使用密码可能不安全。请注意哦!不过我一般使用RSA秘钥免密码连接,通常不存在泄露问题

定时自动备份mysql数据库插图1
备份效果

参数解释

–all-databases, -A: 备份所有数据库
–databases, -B: 用于备份多个数据库,如果没有该选项,mysqldump把第一个名字参数作为数据库名,后面的作为表名。使用该选项,mysqldum把每个名字都当作为数据库名。

–force, -f:即使发现sql错误,仍然继续备份
–host=host_name, -h host_name:备份主机名,默认为localhost
–no-data, -d:只导出表结构
–password[=password], -p[password]:密码
–port=port_num, -P port_num:制定TCP/IP连接时的端口号
–quick, -q:快速导出
–tables:覆盖 –databases or -B选项,后面所跟参数被视作表名
–user=user_name, -u user_name:用户名
–xml, -X:导出为xml文件

完整配置

Bash

#!/bin/bash
# 自动备份docker mysql数据库

# 定义备份路径
backup_dir=/Users/zdy/Desktop/mysql

# 定义备份时间
backup_time=`date +%Y_%m_%d_%H时%M分%S秒`

# 使用进入mysql容器执行mysqldump命令并备份数据库并将文件名更改为当前时间,此处--databases参数为备份多个数据库,若只有一个数据库备份,可以省略改参数
docker exec mysql mysqldump -u数据库用户名 -p数据库密码 --databases waline matomo | gzip > $backup_dir/backup_$backup_time.sql.gz

# 非docker部署时使用
# mysql mysqldump -u数据库用户名 -p数据库密码 --databases waline matomo | gzip > $backup_dir/backup_$backup_time.sql.gz

# 删除7天前的备份
find /www/mysql_backup -name "*.sql.gz" -mtime +7 | xargs rm -f
# 备用删除命令
# find $backup_dir -mtime +7 -name "*.sql.gz" -exec rm -rf {} \;

# 如果不需要压缩使用(直接备份为SQL文件)
# docker exec mysql mysqldump -u数据库用户名 -p数据库密码 --databases waline matomo  > $backup_dir/backup_$backup_time.sql
# find /www/mysql_backup -name "*.sql" -mtime +7 | xargs rm -f

# 拷贝到远程服务器
scp $backup_dir/backup_$backup_time.sql 用户名@远程服务器:路径/backup_$backup_time.sql
THE END
抢沙发

请登录后发表评论

    暂无评论内容

相关推荐

王者和平外挂辅助

王者和平外挂辅助-可能资源网
=====2024/2/7-2/8手游新通知===== 新上架-盒平直撞【大角牛】新上架-盒平直撞【曙光】新上架-盒平直撞【死神】新上架-盒平直撞【魔龙】新上架-盒平直撞【街霸】新上架-盒平直撞【梅西内部】新...
可能的头像-可能资源网可能1个月前
024

你看桌子上都是你流的水

你看桌子上都是你流的水-可能资源网
我抬起头,目光落在桌子上。桌面上满是水渍,我皱了皱眉头。我并没有记得在这里洒水,难道是我不小心打翻了杯子?不过,这水渍的规模也太大了吧。 我环顾四周,没有发现任何可以解释这个水渍的...
可能的头像-可能资源网可能7个月前
051

日出水了好深好涨

日出水了好深好涨-可能资源网
根据您的要求,我将回答您关于日出水的问题。在此回答中,我将避免使用可能在中国敏感的内容。 日出水是指太阳从地平线升起的过程,通常在清晨天空的东方出现。这一壮观的景象是由地球自转和太...
可能的头像-可能资源网可能6个月前
035

一个上面吃一个㖭下的电影,

一个上面吃一个㖭下的电影,-可能资源网
《无间道》和《盗梦空间》是两部非常受欢迎的电影。 《无间道》是一部由香港导演刘伟强和麦兆辉合作执导的犯罪惊悚电影。该片讲述了一名警方卧底和一名潜伏在犯罪团伙中的间谍之间的斗争。影片...
可能的头像-可能资源网可能6个月前
0267

和平精英ios《兰博基尼》外挂免越狱全图乱杀中

和平精英ios《兰博基尼》外挂免越狱全图乱杀中-可能资源网和平精英ios《兰博基尼》外挂免越狱全图乱杀中-可能资源网和平精英ios《兰博基尼》外挂免越狱全图乱杀中-可能资源网
可能的头像-可能资源网可能1个月前
025

一老站长的为什么我写博客谈论我的个人生活

一老站长的为什么我写博客谈论我的个人生活-可能资源网
我经常被告知,我非常勇敢地在公共平台上分享我的生活经历及其错综复杂的细节。 当我想起这件事时,我的嘴角泛起一丝微笑。不是因为我为被认为是勇敢而感到自豪,而是因为我开始这个博客时完全...
可能的头像-可能资源网可能7个月前
051