在Linux上设置自动备份

介绍

自动备份是一种自动备份系统,可从远程服务器检索要备份的数据并将其存储在服务器上。在我们的情况下,我们可以使用具有大量磁盘空间的Vultr存储实例,并通过该实例备份所有计算实例,以防止任何数据丢失。

要求

  • 同步

安装

您可以git轻松地在系统上安装AutoBackup 。继续克隆存储库:

mkdir /opt/
git clone https://github.com/fbrandstetter/Autobackup.git /opt/autobackup/

组态

在开始从计算实例备份数据之前,我们需要获得对它们的访问权限。为此,我们将在存储实例上创建一个SSH密钥,并向其授予对所有计算实例的访问权限。接下来,我们将从创建密钥开始:

ssh-keygen

到目前为止,我们必须将我们的公钥复制到计算实例。打开以下文件~/.ssh/id_rsa.pub并将其复制到Compute Instances'中~/.ssh/authorized_keys

cat ~/.ssh/id_rsa.pub

如果您不使用公共密钥来访问您的计算实例,则必须首先在SSH服务器配置中设置授权密钥文件。/etc/ssh/sshd_config在计算实例上打开以下文件,并取消注释以下行:

AuthorizedKeysFile %h/.ssh/authorized_keys

连接

在所有计算实例上添加了存储实例的SSH密钥后,您就可以继续尝试连接到其中一个计算实例(为了避免以后出现任何问题,请确保与所有服务器的连接都可以正常进行):

ssh root@COMPUTE_INSTANCE_1

您应该能够登录而无需输入任何密码或其他密码。

配置自动备份

自动备份还需要一些配置才能正常运行。打开/opt/autobackup/backup.sh文件,因为任何配置都存储在bash文件本身中。查看以下几行,并对其进行调整以适合您的需求:

BACKUPDIR=""
PASSWORD=""
FREEUPSPACE=""
MAXUSED=""
  • BACKUPDIR:这是将存储所有备份的文件夹。
  • 密码:这是用于加密备份的密码。
  • FREEUPSPACE:定义如果磁盘已满,脚本是否应删除旧备份。
  • MAXUSED:定义在停止备份或开始删除旧磁盘之前允许的最小磁盘大小。

添加服务器

/opt/autobackup/serverlist.template使用以下格式将所有要备份的服务器存储在文件中:

<SERVER_HOSTNAME OR IP>|<USERNAME FOR AUTHENTICATION>|<EXCLUDE LIST>

全球排除

默认情况下,自动备份会自动备份整个服务器,这意味着它将尝试下载/递归文件。由于某些人不需要备份整个系统,因此您可以添加全局排除(适用于任何服务器)和特定于服务器的排除(适用于特定服务器)。所有全局排除项都存储在名为/opt/autobackup/default-excludes.template的文件中,/proc并且文件中预填充了和/dev,您可以在其中添加新文件夹和文件扩展名,只需添加新行即可:

/proc
/dev

特定于服务器的排除项

因为大多数人都在运行不同类型的服务器(例如Web服务器和数据库服务器),所以每个服务器都有唯一的排除列表。特定于服务器的排除文件的格式看起来与全局文件相同。您可以创建一个新文件,并将其调用到EXCLUDE_LIST服务器列表中为服务器设置的文件。如果不想为此服务器指定任何排除列表,请empty在服务器列表中将其设置为。名为的文件empty已由存储库克隆下载-该文件为空以便没有目录或其他任何排除项,而默认排除项仍然有效。

恢复数据

在理想的环境中,我们甚至都不应该还原加密的备份。尽管当遇到问题并且我们需要检索备份的数据时,还原它非常容易。您可以使用以下命令还原任何备份文件:

openssl aes-256-cbc -d -salt -in BACKUP.tar.aes -out BACKUP.restored.tar
mkdir backup/
tar -xvf BACKUP.restored.tar backup/

将替换为BACKUP.tar.aes要还原的所需备份的文件名。BACKUP.restored.tar将是未加密档案的文件名。在上面的示例中,我们已经完成了以下步骤:

  • 新建一个文件夹
  • 将未加密的存档还原到该文件夹

结论

Autobackup是一个完全自动化且非常智能的备份脚本,它可以自动为我们处理备份,而且最大的好处是,数据使用几乎无限长的密码进行加密。这意味着,只要您确保密码安全且足够长,就没有人能够及时触摸您的数据。快乐黑客!



Leave a Comment

如何在CentOS 7上安装Oxwall

如何在CentOS 7上安装Oxwall

Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,

如何在Ubuntu 16.10上安装Review Board

如何在Ubuntu 16.10上安装Review Board

使用其他系统?Review Board是一个免费且开源的工具,用于检查源代码,文档,图像等。这是基于网络的软件战

如何在Debian 9 LAMP VPS上安装October 1.0 CMS

如何在Debian 9 LAMP VPS上安装October 1.0 CMS

使用其他系统?October 1.0 CMS是基于Laravel框架构建的简单,可靠,免费和开源的内容管理系统(CMS)

如何使用Ubuntu 15.10在Vultr服务器上安装Xubuntu桌面

如何使用Ubuntu 15.10在Vultr服务器上安装Xubuntu桌面

Xubuntu是XFCE + Ubuntu!XFCE是Ubuntu的轻量级GUI /桌面。Vultr服务器需要其他依赖项,默认情况下未安装这些依赖项。

如何在Debian 9上安装Monica

如何在Debian 9上安装Monica

使用其他系统?Monica是一个开源的个人关系管理系统。可以将其视为CRM(销售团队使用的一种流行工具

如何使用SSL和安全密码保护由Nginx驱动的网站

如何使用SSL和安全密码保护由Nginx驱动的网站

简介SSL(代表安全套接字层)及其后续版本TLS(代表传输层安全性)是需要加密的加密协议。

如何在Fedora 26 LAMP VPS上安装MODX Revolution

如何在Fedora 26 LAMP VPS上安装MODX Revolution

使用其他系统?MODX Revolution是一种快速,灵活,可扩展,免费和开源的企业级内容管理系统(CMS),由

如何在Ubuntu 17.04上安装JuliaLang

如何在Ubuntu 17.04上安装JuliaLang

朱莉娅(Julia)通常称为JuliaLang,是一种用于数值计算的编程语言。Julia的速度和C一样快,但是却不牺牲可读性

在Ubuntu 14.04上安装Ruby on Rails

在Ubuntu 14.04上安装Ruby on Rails

Ruby on Rails(RoR)是用Ruby编程语言编写的框架,可让您将Ruby与HTML,CSS和类似的程序结合使用。

在Fedora 28上安装Anchor CMS

在Fedora 28上安装Anchor CMS

使用其他系统?Anchor是用PHP编写的轻量级开源博客CMS。Anchors源代码托管在GitHub上。本指南将向您展示

将Debian 9升级到Debian 10

将Debian 9升级到Debian 10

简介Debian 10(Buster)是Debian 9(Stretch)的后继产品。它于2019年7月6日发布。在本教程中,我们将升级一个existin

如何管理Linux服务器时区设置

如何管理Linux服务器时区设置

在Linux服务器上正确设置日期和时间非常重要。您的服务器日志和其他重要信息都将反映时区

如何在Ubuntu 16.04上安装Taiga项目管理工具

如何在Ubuntu 16.04上安装Taiga项目管理工具

使用其他系统?Taiga是用于项目管理的免费和开源应用程序。与其他项目管理工具不同,Taiga使用增量

在Ubuntu上配置Nagios:第1部分-Nagios服务器

在Ubuntu上配置Nagios:第1部分-Nagios服务器

本文是有关在Ubuntu 14.04上安装和配置Nagios的2部分系列文章的一部分。第1部分:Nagios服务器第2部分:远程主机概述Nagio

如何访问Vultr VPS

如何访问Vultr VPS

Vultr提供了几种不同的方式来访问VPS以进行配置,安装和使用。访问凭据VPS ar的默认访问凭据

如何在Debian 9上安装Grav CMS

如何在Debian 9上安装Grav CMS

使用其他系统?Grav是用PHP编写的开源平面文件CMS。Grav源代码公开托管在GitHub上。本指南将向您展示如何

如何在Fedora 26 LAMP VPS上安装Pagekit 1.0 CMS

如何在Fedora 26 LAMP VPS上安装Pagekit 1.0 CMS

使用其他系统?Pagekit 1.0 CMS是一个美观,模块化,可扩展,轻量级,免费和开源的内容管理系统(CMS),具有

如何在Ubuntu 16.04 LAMP VPS上安装BigTree CMS

如何在Ubuntu 16.04 LAMP VPS上安装BigTree CMS

使用其他系统?BigTree CMS 4.2是一种快速,轻量级,免费和开源的企业级内容管理系统(CMS),具有广泛的功能。

如何在CentOS 7上设置vsFTPd

如何在CentOS 7上设置vsFTPd

FTP是用于通过Internet传输文件的有用协议,本指南将向您展示如何设置vsFTPd(非常安全的文件传输协议守护程序)o

在Debian / Ubuntu中使用Rsync设置文件镜像

在Debian / Ubuntu中使用Rsync设置文件镜像

简介如果您经营一个重要的网站,则最好将文件镜像到辅助服务器。如果您的主服务器有网络

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

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 機器變磚。閱讀這篇文章以了解更多信息