在omv等nas系统使用中,mysql数据库会通过docker安装使用,mysql数据库的备份通过备份容器文件来实现,而是通过mysqldump来备份,在omv中使用定时任务备份。
这个脚本需要安装mysqldump命令,如果你得系统不支持安装这个命令,最好是安装一个linux虚拟机来安装mysqldump命令。
在debian系列,
sudo apt-get install mysql-client
在rhel系列,
duso yum -y install mysql-devel
脚本内容如下:
#!/bin/bash
# MySQL连接参数
DB_USER="root"
DB_PASSWORD="mysql password"
DB_HOST="192.168.199.9"
DB_PORT="3307"
# 备份目录
BACKUP_DIR="/backups/dbs/mysql"
# 要备份的数据库列表,以空格分隔,数据库的名字
DATABASES="db1 db2" #
# 创建备份目录
mkdir -p $BACKUP_DIR
# 获取当前日期作为备份文件名前缀
DATE_PREFIX=$(date +"%Y%m%d%H%M%S")
# 备份每个数据库
for DB_NAME in $DATABASES; do
BACKUP_FILE="$BACKUP_DIR/$DATE_PREFIX-$DB_NAME.sql.gz"
echo "开始备份数据库: $DB_NAME"
# 使用 mysqldump 导出数据库,并通过 gzip 进行压缩
mysqldump -u$DB_USER -p$DB_PASSWORD -h$DB_HOST -P$DB_PORT $DB_NAME | gzip > $BACKUP_FILE
if [ $? -eq 0 ]; then
echo "备份完成: $BACKUP_FILE"
else
echo "备份失败: $DB_NAME"
fi
done
echo "所有数据库备份完成"