服务器自动备份MariaDB数据库 + 自动同步到本地 Debian备份服务器

作者:admin 日期:2026年03月10日 地点:紐約,纽约州,美国

流程是:

  • mysqldump(导出数据库)
  • cron(定时任务)
  • rsyncscp(同步到本地)

这样每天自动备份,不用人工操作。⚙️

一、服务器自动备份数据库

先在服务器创建备份目录:

mkdir -p /backup/mysql

创建备份脚本

创建脚本:

nano /usr/local/bin/mysql_backup.sh

写入: 按数据库名称分别备份

#!/bin/bash

DATE=$(date +%F_%H-%M)
BACKUP_DIR="/backup/mysql"
DB_USER="root"
DB_PASS="xxxx"

mkdir -p $BACKUP_DIR

# 获取所有数据库
DATABASES=$(mysql -u$DB_USER -p$DB_PASS -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema|mysql|sys)")

for DB in $DATABASES
do
    mysqldump -u$DB_USER -p$DB_PASS $DB | gzip > $BACKUP_DIR/${DB}_$DATE.sql.gz
done

# 删除7天前备份
find $BACKUP_DIR -type f -mtime +7 -name "*.gz" -delete

保存。

给执行权限

chmod +x /usr/local/bin/mysql_backup.sh

测试运行:

/usr/local/bin/mysql_backup.sh

查看:

ls /backup/mysql

应该看到类似:

mariadb_2026-03-10_10-30.sql.gz


二、定时自动备份

crontab -e

加入:

0 3 * * * /usr/local/bin/mysql_backup.sh

意思:

每天凌晨3点备份


三、本地设置 SSH 免密码

在本地 Debian:

生成密钥:

ssh-keygen

发送到服务器:

ssh-copy-id root@服务器IP

测试:

ssh root@xxxx

如果不需要密码说明成功。


四、本地自动同步任务

本地 Debian:

crontab -e

添加:

10 2 * * * rsync -az root@45.205.26.171:/backup/mysql/ /data/mysql_backup/


意思:

服务器 03:00 备份
本地   03:10 拉取


← 上一篇:MariaDB 安装后必做的核心设置步骤 下一篇:无 →