异地备份是一项重要的安全措施。它们允许在发生硬件故障、意外删除或任何其他灾难性事件时还原数据。自动备份可提高备份过程的可靠性,并确保定期备份最近的数据。
有关阿里云国际对象存储服务自动备份的操作,今天USA-IDC详细说明下操作过程
我们将使用阿里云对象存储服务 (OSS) 作为异地备份存储解决方案。数据将由一个简单的bash脚本备份,该脚本由cronjob定期执行。Minio 客户端将用于将备份传输到 OSS。
阿里云 OSS 是一个合适的备份存储解决方案。很少访问的对象(如备份)可以可靠、廉价且安全地存储。前 5 GB 的存储空间可以完全免费使用。
先决条件
在开始之前,请确保您有阿里云国际站账号。立即注册即可获得300美元的免费积分。创建弹性云服务器或使用SSH连接现有服务器进行操作。您所需要的只是一个基于Linux的系统。
步骤 0 – 添加新用户(可选)
最好使用具有有限系统访问权限的帐户来执行备份脚本。这样做可以提高安全性,因为如果执行备份脚本的用户受到威胁,攻击者的可能性有限。运行以下命令以添加具有名称备份的新用户。
sudo adduser backup
尽可能限制新用户的系统权限,而不限制其上传备份到OSS的能力。
步骤 1 – 创建 OSS 存储桶
接下来,我们将为备份创建一个OSS存储桶。存储桶是对象集合的命名空间。每个对象都由存储桶名称和对象键唯一标识。
首先,导航到阿里云控制台。从主导航栏中打开“产品”下拉列表,然后单击“存储和 CDN”部分中的对象存储服务链接。如果您之前未使用过OSS,您将被要求接受OSS服务条款。单击创建存储桶,为备份对象创建存储桶。
输入存储桶的名称,选择地域,选择存储类并设置访问控制限制。我们将使用存储桶名称backup-demo和EU Central 1区域。
三种可用的存储类提供相同的数据可靠性和服务可用性保证。
它们主要在数据访问功能和定价方面有所不同。与标准存储相比,不频繁访问存储提供实时访问和更低的存储费用。任何对象至少需要支付 30 天的存储费用,即使对象在创建后不久就被删除了。对象的最小计费大小为 128 KB。归档存储提供的存储费用甚至更低,但数据必须解冻才能变得可读,这需要一分钟。最小计费存储持续时间为 60 天,对象的最小计费大小为 128 KB。
考虑到不同存储类的属性,不频繁访问存储将是大多数备份用例的最佳类。与标准存储相比,它结合了实时访问和更低的存储费用。可以在此处找到有关存储类的详细信息。
对于备份,ACL 应为专用,因为备份应仅由经过身份验证的系统写入和读取。请注意,创建存储桶后,无法更改所选的存储类和区域。单击“确定”以创建存储桶。
步骤 2 – 创建访问密钥
接下来,我们将创建访问密钥,备份脚本将使用该密钥通过OSS进行身份验证。单击OSS仪表盘页面的访问密钥按钮。
系统将询问您是否要使用子用户的访问密钥。子用户的访问密钥更安全,因为它们的权限可以被锁定。单击“子用户访问密钥入门”,将其重定向到“资源访问管理(RAM)”仪表板。如果您以前没有使用过RAM,您将被要求接受RAM服务条款。
接下来,单击边栏中的“用户”。以下屏幕列出了每个子用户。通过单击“创建用户”按钮创建新的子用户。
接下来,输入新用户的数据。我们将选择用户名 backup-demo-user。所有其他字段都是可选的“标记自动为此用户生成访问密钥”复选框。按“确定”创建用户。
系统将提示您将用户的访问密钥保存到您的计算机。之后无法检索访问密钥!确保其安全。
接下来,我们将配置与访问密钥关联的权限。我们将选择阿里云OSSFullAccess授权策略。因此,使用此访问密钥进行身份验证的任何人都可以管理 OSS。请记住,可以编辑策略以进一步降低对单个存储桶或存储桶组的访问权限。
步骤 3 – 设置 Minio 客户端
Minio Client为UNIX命令(如ls,cat和cp)提供了一种现代替代方案。我们将使用它,因为它不仅支持文件系统,还支持与S3兼容的云存储,如阿里云OSS。
如果您愿意,可以使用 Minio 客户端 Docker 映像。有关说明,请参阅 DockerHub 上的 minio/mc。
使用 wget 下载 Minio Client 可执行文件。如果您不使用 linux-amd64,请确保从 https://dl.minio.io/client/mc/release/ 中选择正确的下载链接。
cd ~ wget https://dl.minio.io/client/mc/release/linux-amd64/mc
接下来,使用 chmod 命令设置可执行位以允许执行该文件。
chmod +x mc
将可执行文件移动到 PATH 环境变量中列出的目录。这样做将允许从任何目录运行可执行文件,而无需提供其完整路径。/usr/bin 目录可用于许多常见的 Linux 发行版(如 Ubuntu)的用途。可执行文件将可供系统上的所有用户使用。
sudo mv ./mc /usr/bin/mc
运行mc版本以检查是否可以运行Minio客户端。
步骤 4 – 配置 Minio 客户端以用于阿里云 OSS
接下来,我们将配置 Minio 客户端以用于阿里云 OSS。在替换占位符后,使用步骤 1 和 2 中的相应值运行以下命令。可以在 OSS 存储桶控制面板上找到。如果不确定要选择哪个终结点,请使用 Internet 访问终结点。如果缺少所有必需的 Minio 客户端配置文件,则会自动创建这些文件。
mc config host add oss
列出在步骤 1 中创建的存储桶中的所有对象,以检查配置是否正常工作。
mc ls oss/backup-demo
您不应看到任何输出,因为存储桶不包含任何对象。如果显示错误消息,请检查 ~/.mc/config.json 上的配置文件。
步骤 5 – 创建备份脚本
接下来,我们将创建一个脚本,将目录中的所有文件备份到OSS。备份数据可以是数据库转储或任何其他数据。实际上,备份数据将由另一个脚本定期生成。我们将为此演示手动放置一些文本文件。如果要将包含多个文件的目录备份为一个对象,请考虑使用 tar 将目录打包为单个文件。
使用您选择的文本编辑器在主目录中创建名为 backup.sh 的文件。将以下脚本复制到文件中。
#!/usr/bin/env bash SOURCE=$1 DESTINATION=$2 mc cp --json --recursive $SOURCE $DESTINATION
第一行称为shebang,并确保脚本将使用bash执行。之后,我们将第一个参数分配给名为 SOURCE 的变量,将第二个参数分配给名为 DESTINATION 的变量。第二行使用 Minio Client 以递归方式将所有文件和目录从源复制到目标。SOURCE 和 DESTINATION 都可以引用文件系统或云存储。文件名将用作对象键。–-json 选项允许将结构化输出为 JSON。
OSS存储空间中已有的任何文件都将被跳过。因此,应确保不要重复使用文件名。确保所有文件名都唯一的最简单方法是在文件名中包含时间戳。
步骤 4 – 使用 Crontab 安排常规脚本执行
接下来,我们将使用 cronjob 定期执行备份脚本。首先,使用 chmod 在 backup.sh 脚本上设置可执行位。这将允许文件执行。
chmod +x ~/backup.sh
接下来运行 crontab -e 以配置 cronjob。如果这是您第一次使用 crontab,系统将要求您选择一个编辑器:
no crontab for nick - using an empty one Select an editor. To change later, run 'select-editor'. 1. /bin/ed 2. /bin/nano <---- easiest 3. /usr/bin/vim.basic 4. /usr/bin/vim.tiny Choose 1-4 [2]:
按回车键选择 nano(默认)。将以下行添加到文件末尾。
* * * * * ~/backup.sh ~/backup-demo/* oss/backup-demo
SOURCE 参数指向 ~/backup-demo 目录中的文件,而 DESTINATION 参数指向我们之前创建的 OSS 存储桶。备份脚本将每分钟执行一次。保存文件。
让我们检查一切是否按预期工作。在备份目录中创建备份目录和文件:
mkdir ~/backup-demo echo test1 > ~/backup-demo/test1.txt
该文件应在一分钟后显示在您的 OSS 存储桶中。使用 mc ls oss/backup-demo 检查存储桶,或在阿里云控制台中打开存储桶控制面板。
如果文件未出现在 OSS 存储桶中,请检查 crontab 输出。默认情况下,cronjobs 会记录到 /var/log/syslog。
其他注意事项
如果您需要备份大量数据,压缩备份是有意义的。
您应确保监视任何自动备份。这将使您能够在出现任何问题时修复它们,并确保定期备份您的数据。
无法还原的备份是无用的。您应通过定期测试来确保备份和备份过程按预期工作。
没有阿里云国际版账户怎么办?无法完成PayPal支付购买阿里云国际ecs实例?ecs实例续费出现问题?阿里云国际版账户被风控?USA-IDC是阿里云、AWS、腾讯云国际版金牌分销商,可代充值,通过分销商注册的账户不易被风控,且还有额外折扣可享。