创建具有双重性的增量和加密备份

总览

尽管Vultr确实具有用于整个系统映像的备份系统,但它在块级起作用,并且需要将备份还原到VM后才能还原数据。此外,备份仅存储很短的时间,不能提供真正的增量备份解决方案。

输入Duplicity-Duplicity建立在传奇的rsync之上,并提供了存储增量备份以及通过GPG加密静态数据的功能。它符合Posix,仅在备份运行之间传输增量,因此降低了整体带宽需求。

搭建环境

术语

  • 源主机-将备份其数据的服务器。对于本教程,它的IP地址为:10.1.10.1
  • 备份主机-备份的目标服务器。对于本教程,它的IP地址为:10.1.10.2
  • / backupdir-本教程中用于备份的源主机上的源目录。您可以更改它以匹配您的环境。
  • / destdir-本教程中用于备份的备份主机上的目标目录。您可以更改它以匹配您的环境。
  • 完全备份-源数据集的完整副本。
  • 增量备份-自上次备份以来所做的所有更改的副本。

安装双重性

Ubuntu 14.04:
sudo apt-get update
sudo apt-get install duplicity python-paramiko
CentOS(需要EPEL):
sudo yum install duplicity python-paramiko
Ubuntu 12.04 / Debian 7:
sudo apt-get update 
sudo apt-get install ncftp python-paramiko python-pycryptopp lftp python-boto python-dev librsync-dev
wget https://launchpad.net/duplicity/0.7-series/0.7.02/+download/duplicity-0.7.02.tar.gz
tar xzvf duplicity*
cd duplicity*
sudo python setup.py install

由于后端SSH库的更改,Debian 7和Ubuntu 12.04中的Duplicity软件包已损坏,因此我们必须从源代码安装。

通过运行以下命令仔细检查是否已安装Duplicity:

duplicity -v

它应该返回以下输出(版本可能有所不同):

duplicity 0.6.18

为SSH设置无密钥身份验证

下一步是在备份主机和源主机之间为SSH设置基于证书的身份验证。这将使源服务器无需输入密码即可通过SSH进入备份主机。Vultr的精彩文章解释了如何执行此操作:如何生成SSH密钥

后备

运行第一个(完整)备份

让我们运行完整备份!这会将数据的完整副本从源服务器发送到目标。

duplicity full -v --no-encryption --include="/sourcedir/" --exclude="**" /  ssh://user@backupserver:22/destdir/

您可以通过包含多个--include="[dir]"语句来添加其他文件夹。

--no-encryption指定数据是不是在目的地被加密。数据在通过SSH隧道传输时将被加密。

--exclude="**" /选项是备份仅包含列表中的所有内容(而不包含其他内容)的一个技巧。

运行增量备份

运行增量备份非常简单-只需将full标志更改为标志即可incremental

duplicity incremental -v --no-encryption --include="/sourcedir/" --exclude="**" /  ssh://user@backupserver:22/destdir/

自动化

编写自动化脚本

每次需要备份时都必须运行这些命令很麻烦-如果我们有脚本来为我们处理该怎么办?

完整备份脚本

运行命令。

nano /usr/local/bin/backup-full

添加以下内容。

#!/bin/bash
duplicity full -v --no-encryption --include="/sourcedir/" --exclude="**" /  ssh://user@backupserver:22/destdir/
增量备份脚本
nano /usr/local/bin/backup-incremental

添加以下内容。

#!/bin/bash
duplicity incremental -v --no-encryption --include="/sourcedir/" --exclude="**" /  ssh://user@backupserver:22/destdir/
使脚本可执行

要使脚本可执行,请运行以下命令。

chmod +x /usr/local/bin/backup-*

现在,您可以通过在Shell中运行backup-fullbackup-incremental从中执行备份。太酷了!

设定cron

让我们自动备份!通过设置cron在指定的时间运行上述脚本,我们可以确保定期执行备份。

运行以下命令。

crontab -e

将以下内容添加到文件的底部。

10 01 * * 1,2,3,4,5,6 backup-incremental
10 01 * * 7 backup-full

这将在每个星期日的1:10 AM运行完整备份,并且还将每隔一天的1:10 AM运行增量备份。

恢复

哥斯拉(Godzilla)摧毁了西雅图,我们需要能够从纽约的备用VPS取回数据!

duplicity --no-encryption --file-to-restore / ssh://user@backupserver:22/destdir/

如果我们需要还原3天前的数据:

duplicity --no-encryption -t 3D --file-to-restore / ssh://user@backupserver:22/destdir/

-t 3D选项表示从三天前还原备份。类似的选项-t 1M(一个月前)或-t 5H(5个小时前)也适用。



Leave a Comment

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

什麼是日誌文件系統,它是如何工作的?

什麼是日誌文件系統,它是如何工作的?

我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true

技術奇點:人類文明的遙遠未來?

技術奇點:人類文明的遙遠未來?

隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

2021 年人工智能對醫療保健的影響

2021 年人工智能對醫療保健的影響

過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。