如何在 Linux 上自动上传 MySQL 备份到 FTP

DBA 在部署数据库后应该做的第一件事是确保定期创建备份。

但是,将备份文件存储在与 MySQL 服务器所在的同一台服务器上将是一个很大的错误。因此,应该创建一个备份,并将其放在 MySQL 所在的服务器之外。最简单的解决方案是通过 FTP 将其传输到另一台服务器。

使用 BASH 脚本将备份传输到 FTP

Ubuntu 默认有一个 FTP 客户端,尽管使用起来不是特别方便,尤其是在 bash 脚本中。LFTP 实用程序更方便,可以使用下面两个命令安装它。

sudo apt-get update -y

sudo apt-get install -y lftp

要创建备份、压缩它、将其传输到 FTP,然后删除超过 7 天的文件,请使用以下脚本:

#credentials to connect to mysql
mysql_user=me
mysql_password=1234

#credentials to connect to ftp
FTPUSER=one
FTPPW=1234                            
FTPSERVER=localhost

#directory that will be created on ftp and the one that will be deleted
TODAY=$(date +"%Y_%m_%d")                   
RMDATE=$(date +"%Y_%m_%d" -d '7 days ago') 

TMPDIR=~/backup
mysql_backup_file=$TMPDIR/backup.sql

echo -n "Database dump"
mysqldump -u $mysql_user -p$mysql_password --all-databases > $mysql_backup_file && 
echo -n "Dump compression"
gzip $mysql_backup_file

echo -n "Uploading files via FTP... "
lftp << EOF
open ${FTPUSER}:${FTPPW}@${FTPSERVER}
cd backups/
mkdir ${TODAY}
cd ${TODAY}
mput -E ${TMPDIR}/*
cd ..
rm -rf ${RMDATE}
bye
EOF
echo "Done."

现在剩下的就是安排脚本定期执行 cron 任务。

crontab -e

并在文件末尾添加以下字符串:

30 22 * * * /home/user/script/mysql_backup.sh

请注意,上面的脚本有一个明显的缺点,就是如果跳过脚本的启动,那么旧的备份将不会被删除,它会保留在 FTP 上。

解决方案必须可靠

可能发生的最糟糕的事是,当需要备份文件时,结果备份任务在很久之前就中断了。

在 bash 脚本中配置的脚本可能会因多种原因停止工作。下面列举一些可能的原因:

  1. 数据库密码已更改;
  2. FTP密码已更改;
  3. MySQL 设置已更改,导致备份创建错误;
  4. 磁盘空间不足(没有足够的空间来创建备份);
  5. 与 FTP 相关的网络更改:FTP 服务器移动、地址更改、防火墙。

因此,定期备份的解决方案,应该在发生故障后及时通知我们,以便可以随时检查一切是否正常。

任何 Linux 问题都可以使用 bash 脚本解决,但创建真正可靠的解决方案可能需要大量时间。

第三方解决方案

SqlBak 服务是一种基于代理的服务,用于创建 MySQL、PostgreSQL、MongoDB 和 SQL Server 备份。备份相关活动的整个历史记录显示在单个仪表板上。如果出现问题,该服务会立即通知您。

SqlBak 还拥有许多有用的特性:

  1. 将备份传输到各种云存储:Dropbox、Google Drive、OneDrive、Amazon S3、Azure、Backblaze、Wasabi。
  2. 备份加密。
  3. 邮件通知。
  4. 文件夹备份。
  5. 自动备份恢复到另一台服务器。

使用 SqlBak 备份 MySQL 服务器,您需要在服务器上安装客户端。该应用程序可以通过标准包管理器安装。

在服务器上安装 SqlBak 后,它会出现在您的 仪表板 页面上。

如何在 Linux 上自动上传 MySQL 备份到 FTP

现在您必须设置与 MySQL 服务器数据库的连接。可以通过以下命令完成:

sudo sqlbak --add-connection --db-type=mysql --user=root
如何在 Linux 上自动上传 MySQL 备份到 FTP

安装了应用程序并设置了连接,就应该进行创建备份操作了。为此,请单击“添加新任务”按钮并选择“创建任务”。

如何在 Linux 上自动上传 MySQL 备份到 FTP

转到“选择数据库”部分,然后选择要备份的所有数据库。

如何在 Linux 上自动上传 MySQL 备份到 FTP

下一步是选择备份的目标位置。在“将备份存储在目标”部分中,从列表中选择 FTP 并添加适当的设置。

如何在 Linux 上自动上传 MySQL 备份到 FTP

向下滚动到“计划备份”部分并设置您需要的备份计划。请注意,使用 Linux 上的 SqlBak,您也可以运行增量备份。

如何在 Linux 上自动上传 MySQL 备份到 FTP

如果您希望在备份成功或失败时收到通知,请转到“发送电子邮件确认”部分并添加您的电子邮件。要通过多个电子邮件接收通知,请指定它们,用逗号分隔。

如何在 Linux 上自动上传 MySQL 备份到 FTP

下面,在备份操作设置页面,可以找到其他有用的设置,例如:执行前后脚本、加密和备份文件夹等等。

设置备份操作时另一个有用的选项是“还原任务”,可以使用它配置还原过程以将新创建​​的文件还原到不同的数据库服务器。

您可以通过单击“立即运行”按钮检查设置,备份操作将立即启动并显示在作业执行日志中。

作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/linux/how-to-automatically-upload-mysql-backup-to-ftp-on-linux/

(0)
牛奇网牛奇网
使用命令行导入和导出 MySQL 数据库(MySQL 数据库备份与恢复方法)
上一篇 2022年5月7日 上午9:01
Windows 11 如何更改鼠标双击速度
下一篇 2022年5月7日 下午12:38

相关推荐

  • vi和vim编辑器的区别

    Vi 编辑器和 Vim 编辑器都是开源的文本编辑器,它们有着强大的功能和可定制性,是许多程序员和技术人员的首选编辑器。 Vi 编辑器最初由 Bill Joy 在 1986 年开发,…

    2023年4月26日
    00
  • WordPress无法登录后台要怎么处理?

    WordPress 是世界上最受欢迎的内容管理系统。很多新手会遇到无法登录Wordpress后台的问题,比如在启用https后无法登录,或者登陆跳转到IP地址等等。本文针对该问题提…

    2023年2月1日
    00
  • Linux 中 ls 命令及示例

    在Linux系统中,掌握ls命令的使用一直都是新手必备的技能之一。为了帮助大家更好地理解和使用这个非常实用的命令,今天牛奇网就为大家深入介绍一下ls命令。本文将从ls命令的基本用法…

    2023年8月28日
    00
  • Iptables 和 ufw 哪个好?

    Iptables 和 UFW (Uncomplicated Firewall) 都是 Linux 操作系统中常用的防火墙管理工具,它们的主要区别如下: 相同点: 两者都是 Linu…

    2023年3月1日
    00
  • Linux中如何删除目录

    在Linux系统中,如果你想永久地删除一个目录,可以使用rmdir或者rm命令。rmdir或者rm -d命令是用来删除空目录的,而rm -r命令是用来删除非空目录和它里面的内容的。…

    2023年9月8日
    00
  • sudo命令的用法详解

    sudo 是 Unix 类操作系统中的命令行工具,允许具有适当权限的用户以另一个用户(通常是 root 用户)的身份执行命令。 使用 sudo 的基本语法如下: 例如,要以 roo…

    2023年2月12日
    00
  • MySQL 中常用的查询语句

    SQL 是一种结构化查询语言,用于管理关系型数据库管理系统(RDBMS)。SQL 的范围包括数据插入、查询、更新和删除,数据库模式创建和修改,以及数据访问控制。SQL 语句是对数据…

    2023年3月17日
    00
  • Linux系统中chmod命令的用法

    chmod 命令用于更改文件或目录的访问权限。在 Linux 和 Unix 系统中,每个文件和目录都有一组访问权限,它们确定了用户或组可以执行的操作,如读取、写入和执行。 chmo…

    2023年2月12日
    00
  • Linux 端口转发入门教程

    端口转发是网络管理中非常重要的一项技术,它可以实现网络流量的转发和连接,扩展局域网的应用范围。本文牛奇网将向您介绍端口转发的基本概念、实现方法和应用场景,并通过实例详细讲解了如何在…

    2023年8月27日
    00
  • 提高 MySQL/MariaDB 安全性的几个方法

    MySQL 是世界上最受欢迎的开源数据库管理系统,而 MariaDB 是 MySQL 的一个分支,是世界上增长最快的开源数据库管理系统。安装 MySQL 服务器后,其默认配置是不安…

    2022年4月2日
    00
  • Linux 下 MySQL 数据库常用命令

    Linux 下 MySQL 数据库常用命令Linux 下 MySQL 数据库常用命令Linux 下 MySQL 数据库常用命令Linux 下 MySQL 数据库常用命令

    对很多不熟悉 MySQL 的朋友来说,要记住那么多的数据库命令,真的是非常痛苦的事情。今天我们就把一些常用的 MySQL 命令整理一下,供大家在需要的时候查阅。本文介绍的命令,适用…

    2022年2月17日 Linux知识
    00
  • MySQL权限管理

    在MySQL中,通过管理权限可以管理用户在MySQL服务器上的操作,如创建和删除数据库,创建和删除用户,以及授予和撤销用户的权限。 也可以只授予用户管理特定数据库和该数据库中的所有…

    2023年2月17日
    00

发表回复

登录后才能评论