unraid定时备份Mysql数据库,再也不怕数据丢失

2022-11-05 11:24:34 10点赞 77收藏 9评论

该篇教程主要定时备份Docker上Mysql数据库

参考这位大佬的:docker中mysql数据备份

完整的脚本

#!/bin/bash

# 设置mysql的登录用户名和密码(根据实际情况填写)

mysql_docker="mariadb"

mysql_user="root"

mysql_password="root"

mysql_host="192.168.31.43"

mysql_port="3306"

# 备份文件存放地址(根据实际情况填写)

backup_location=/mnt/user/2T_download/mysql

#备份数据库文件名称格式

backup_name=backup-$(date +"%Y%m%d%H%M").sql

# 备份指定数据库中数据(--all-databases表示备份所有数据库,如果需要备份单独某个换成--databases xxx,xxx是具体数据库名称)

docker exec -i $mysql_docker mysqldump -h $mysql_host -P$mysql_port -u$mysql_user -p$mysql_password --all-databases > $backup_location/$backup_name

# 是否删除过期数据

expire_backup_delete="YES"

expire_days=30

# 删除过期数据(根据修改时间删除的,并不是名称)

if [ "$expire_backup_delete" == "YES" -a "$backup_location" != "" ];then

find $backup_location/ -type f -mtime +$expire_days | xargs rm -rf

echo "backup data delete complete!"

fi

第一部分是填写数据库

# 设置mysql的登录用户名和密码(根据实际情况填写)

mysql_docker="mariadb"

mysql_user="root"

mysql_password="root"

mysql_host="192.168.31.43"

mysql_port="3306"


参考自己的数据库填写

unraid定时备份Mysql数据库,再也不怕数据丢失

第二部分是备份文件的路径,注意该路径下不要放其他东西

# 备份文件存放地址(根据实际情况填写)

backup_location=/mnt/user/2T_download/mysql

第三部分是备份数据库文件名称格式,现在是“backup-202211041404.sql”

#备份数据库文件名称格式

backup_name=backup-$(date +"%Y%m%d%H%M").sql

第四部分是数据备份

# 备份指定数据库中数据(--all-databases表示备份所有数据库,如果需要备份单独某个换成--databases xxx,xxx是具体数据库名称)

docker exec -i $mysql_docker mysqldump -h $mysql_host -P$mysql_port -u$mysql_user -p$mysql_password --all-databases > $backup_location/$backup_name

第五部分是删除过期数据库,这里设置了只保留30内的备份数据,30天外的删除

# 是否删除过期数据

expire_backup_delete="YES"

expire_days=30

# 删除过期数据(根据修改时间删除的,并不是名称)

if [ "$expire_backup_delete" == "YES" -a "$backup_location" != "" ];then

find $backup_location/ -type f -mtime +$expire_days | xargs rm -rf

echo "backup data delete complete!"

fi

怎么运行?建议安装『 User Scripts脚本

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
9评论

  • 精彩
  • 最新
  • 有一个用来备份数据库的docker应用,可视化操作比较适合我这种小白

    校验提示文案

    提交
    ??

    校验提示文案

    提交
    这是容器的存储库,jeessy/backup-db,好像是个个人开发的软件,很实用的,你可以试一下,可以设置什么时间备份哪个数据库,也可以整体备份,可以设置备份保存多长时间。

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 有没有一种可能,unraid本来就有备份插件appdatabackup

    校验提示文案

    提交
    这个是备份数据库,不是普通备份

    校验提示文案

    提交
    收起所有回复
  • 可以再命令行里再加一些gzip的压缩命令,减少备份文件占用空间

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
77
扫一下,分享更方便,购买更轻松