如何备份和恢复您的网站

已发表: 2018-05-07

在建立您的企业网站时,您通常关心的第一件事是让您的网站正常运行; 这需要做很多工作,最重要的是让一切正常运转。

所以,它启动并运行得很顺利,突然,发生了一些事情。 它消失了。 您的文件丢失了。

如果您在本地服务器上构建了网站,您可能会觉得自己已经有了备份。 你所有的东西都在两个地方,对吧? 文件存在于服务器和您的计算机上。

可能会出什么问题?

不需要太多的想象力就能想到可能会发生什么。 您的计算机由于某种原因死机了,可能是意外的电涌,或者您 3 岁的孩子认为将牛奶倒入您的笔记本电脑很有趣。 但是,嘿,您已将其存储在服务器上,所以您为什么要担心,对吧?

没那么快……

如果服务器出现问题,或者超级便宜且看似可靠的托管提供商在没有任何警告的情况下破产怎么办? 您的网站运行数据库这一事实怎么样? 您是否拥有计算机上每个文件的精确副本?

这就是备份网站变得重要的地方!

在本文中,我将介绍您需要了解的有关备份网站的所有信息,包括原因、内容和方式。

为什么要备份您的网站?

您应该备份网站的原因有多种。

1. 恶意软件/勒索软件

无需过多讨论,就可以知道不存在完全安全的系统。 无论您实施多少安全程序和协议,所有系统都容易受到攻击。

虽然安全程度不同,但有些系统比其他系统更容易受到攻击。 实际上不可能阻止您的网站免受所有类型的攻击,如果您确实希望人们使用您的网站,则更是如此。

把它想象成你的房子; 你可以像诺克斯堡那样把它封起来,但这样就没有人能进去了,所以你必须有门。 当然,你的门锁很好,但总有人可能会从窗户破门而入。

任何系统中最薄弱的环节都是人。 只需一次错误的点击,或者回复看似重要的电子邮件,就会遭受网络钓鱼攻击。 一旦有人通过软件或其他方式进入您的系统,他们就有可能控制您的文件以勒索赎金。

如果您拥有副本,您不必向可能会或可能不会归还您的网站或文件的未知人士花钱,而不会那么容易受到攻击。

2. 删除的文件/错误的命令/人为错误

像删除服务器上错误的文件这样简单的事情,无论是在 Windows/Mac 上简单的“单击/删除”,还是在 Linux 或其衍生产品中使用命令行,都可以擦除密钥文件或所有文件。

(在 Linux 中,命令 rm -r diretoryname 会删除一个目录及其中的所有文件,通常无需确认,更糟糕的是, rm -rf / 甚至可以删除只读文件和根目录中的所有内容,这基本上会杀死你的整台机器!)。

3. 黑客攻击

恶意行为比我们想象的更常见。 有时它甚至不像恶意软件或勒索软件类型的黑客攻击那么简单; 有很多人把侵入网站当作一种运动。 即使您可能认为您网站的内容对黑客来说没有高价值,这种情况仍然可能发生。

对于那些使用 WordPress 等流行平台的人来说,这尤其是一个风险,这些平台有许多有据可查的弱点,如果不修补,就会给你留下一个大目标。

4. 糟糕的开发者/员工/任何人

许多企业严重依赖第三方来设计我们的网站。 在大多数情况下,网络开发人员和我们其他人一样诚实。 大多数人(比如<smile>你真正的</smile>)都是伟大而诚实的人(而且谦虚!)。

但是,也许您会遇到付款纠纷? 人们对于道德行为的看法差异很大。 对于有权访问您网站后端的愤怒(或邪恶)员工来说,如果他们不满意或出于任何原因,他们很容易简单地关闭该网站。

这是我们不愿意考虑的事情,但为了安全起见通常是个好主意。

5. 服务器崩溃

当技术发挥作用时,它就是伟大的。 在大多数情况下,特别是如果您使用的是可靠且信誉良好的托管公司,服务器崩溃而数据被清除的情况很少发生。

但即使是最好的供应商也有问题。

此外,如今在许多情况下,您的网站很可能托管在虚拟服务器上。 换句话说,你的数据并不是在独立的物理计算机上,而是与许多其他人或企业共享。 托管提供商在一台物理服务器上托管许多不同的“虚拟”实例是很常见的。

对于大多数廉价的网络托管公司来说,这种情况更为常见,除非您愿意花大价钱购买自己的物理服务器,否则您很可能会共享空间。 如果另一个部分出现问题,可能会影响您的网站和文件。

此外,即使您将站点托管在一台物理服务器上,它本质上仍然只是一台计算机。 虽然服务器往往存储在安全的地方,就像您自己的计算机一样,但仍然有可能出现问题。

服务器可能会过热,可能会发生意外的自然灾害,在错误的时间发生电源波动,甚至可能会导致制造商隐藏的缺陷导致数据丢失。

除此之外,服务器场可能成为协调的专用拒绝服务 (DDOS) 攻击的目标,在极端情况下可能需要完全重新启动; 这总是存在部分或全部数据丢失的潜在风险。

出于这些原因,通常最好将所有关键数据的副本保存在另一个位置,因此,如果其中一种可能,无论发生的可能性有多大(因情况而异)。

您应该在网站上备份哪些内容?

您可能想要备份的内容类型可以分为以下几类:

1. 文件

这些是构成您网站的所有文件。 它们包括所有页面/脚本/CSS 文件和图像或文档,或作为网站核心部分的任何多媒体内容。

你可以认为这些是不会改变的内容; 它们仍然是静态对象。 因此,它们通常是站点中最容易管理和备份的部分。

2. 数据库

很可能的情况是,大多数网站使用数据库来存储产品、单个页面或可能是重复内容变体的其他项目。

如果您的数据库有些静态(即站点上的大多数项目很少更改),则保持备份相对简单,就像文件一样。

但是,如果在大多数情况下,这些内容是流动的,例如博客文章、产品、交易或定期更改或添加的任何其他内容,则您将需要找到一种方法来定期备份这些数据。

3. 电子邮件帐户

如果您要存储用户电子邮件或联系信息的记录。 您还可能拥有完整的电子邮件服务器以及通过主机进行的所有电子邮件交易的记录。 您可能希望保留使用此帐户的互动、电子邮件和邮件列表的所有记录。

快速注意:如果您将联系信息存储在邮件服务器以外的数据库中,您还需要备份该信息!

如何备份您的网站

备份站点并不是特别困难,但首先,您需要了解有多种方法。 它们的质量、可靠性和易用性各不相同(取决于您的技能水平)。 使用多个通常是一个好主意。

1.通过您的虚拟主机

任何好的网络主机都应该为网络服务器上的所有文件创建自动备份。 网络主机应该在内部执行此操作,并且通常会进行每日备份,无论您做什么。

因此,如果发生任何情况,您应该能够依靠网络主机的备份。

但是,网络主机通常不会保留多个备份版本,您将受到他们的摆布。 他们将提供某种工具供您手动创建自己的备份。

例如,您可以通过 cPanel(大多数网络主机使用的通用控制面板)轻松创建网站的完整备份。

通过 cPanel 手动网站备份

要使用服务器的备份工具,您需要询问您的提供商并阅读他们提供的任何手册。 通常,您的文件将存储为压缩文件,并将存储在您的服务器上。

您可能需要根据您的平台指定您想要的格式类型。 他们还将提供有关如何在必要时恢复备份的说明。

网络服务器文件备份 如果您的网络主机确实在服务器上提供了此备份副本,请确保它存储在与您的网站不同的服务器上。 服务器可能会崩溃!

使用提供商服务的优势是相当明显的; 它通常与您的主机无缝连接。

然而,这些缺点与您的托管提供商有关。 虽然他们可能非常擅长托管您的网站,但将所有鸡蛋放在一个篮子里绝不是明智之举。

如果出现问题,例如他们的服务器场着火,或者他们受到黑客的某种攻击(是的,这种情况确实偶尔会发生;没有人能幸免,托管提供商是主要目标)。

出于这些原因以及其他原因,偶尔将文件的副本下载到您的计算机是一个非常好的主意。 您可能还希望至少自己手动保留网站的副本。

2.CMS网站备份插件

如果您使用流行的 CMS(例如 WordPress),则可以安装许多插件,例如 Backup Buddy。 这些非常方便并且易于安装。

然而,备份插件通常会产生降低网站速度的负面影响。 由于 PHP 是 WordPress 的原生编程语言,因此大多数插件也使用 PHP。

虽然这可能很有效,但它往往会运行缓慢,这意味着它们可能会在运行过程中减慢您的网站速度(它们通常会使用生成您网站的同一引擎运行),还会给您的网站增加混乱,并且也是比理想情况更高层次的抽象。

具有讽刺意味的是,另一个因素可能会让您的网站更容易受到攻击。 PHP 本身存在一些已知的安全问题,特别是如果所使用的代码已经过时或编写得很草率。

除非您完全确定这些插件中包含的代码(说真的,谁有时间仔细研究别人的源代码?),您用来保证数据安全的插件可能会降低其安全性。 (是的,许多都是信誉良好的并且提供高质量的代码。我不会在这里惊慌,但这是需要记住的事情)。

虽然 PHP 是一种很棒的编码语言(它是我最喜欢的语言之一,而且我每天都使用它),但最好让尽可能多的功能在该平台之外运行。 通常,如果您想在操作系统级别运行任何备份。

如果您运行的是 Linux 或其任何衍生版本,您可能希望在 Windows 中运行 shell 脚本、批处理文件或 Mac 上的 macos 文件。

3. 手动网站备份

我们中的许多人可能熟悉备份文件的“老式”方式:制作所有文件的副本并将它们放在可移动硬盘上或存储在云中。

这本质上与您在网站上使用的方法相同,但有一些注意事项。

当然,如果您在本地创建网站,然后通过 FTP(或者希望是 SFTP)将其传输到您的主机,那么从技术上讲您已经拥有了网站的副本。

然而,有一个关键的区别……

如果您的站点上有数据库,则本地(在测试数据库中)的内容很可能与实时站点上的内容不同。 如果您使用某种 CMS 软件(WordPress 等),则尤其如此。

如果是这种情况,则站点上几乎所有内容都存储在数据库中,并且根本不存在于数据库本身之外的任何文件中。

备份数据库实际上相对容易,特别是如果您使用 MySQL。 您只需要获取数据库的 SQL 转储即可; 它只是一个包含数据库所有内容的纯文本文件。

创建后,只需将其上传或作为文件运行即可重建数据库。

命令行方式

这相对简单。 以下命令将备份整个数据库。

$ mysqldump -u [uname] -p[pass] db_name > db_backup.sql

如果您想了解有关运行这些以及各种选项的更多详细信息,请查看 MySQL 文档

PhpMyAdmin方法

转到数据库的导出选项卡,选择您需要的所有选项(通常您可能希望包括“删除表”并创建数据库选项,以便可以在旧版本上加载新副本,但买家要注意......它会真正清除现有数据并用新副本替换)。

然后,您可以获取创建的所有文件(源代码、数据库和图像)并将其压缩并在您喜欢的位置保留副本(我个人喜欢使用云存储,例如 Google Drive 或 Dropbox)。

明显的缺点是你必须记住这样做并且很容易忘记。 因此,如果您想更进一步,您可以编写执行所有这些操作的脚本,并使用系统定期运行这些脚本。

在 Linux 中,通过命令行运行 sql 转储,然后将该脚本作为 cronjob 运行,每天、每周或您喜欢的任何时间范围运行一次,相对容易。

在 Windows 中,您可以使用批处理和内置任务计划程序。 我的典型方法是运行一个带有 sql 转储的批处理,然后将整个目录批量复制到我的 Dropbox 帐户。

快速提示:您需要定期清理存储这些内容的目录; 虽然 sql 文件(文本文件)往往很小,但它们会随着时间的推移而累积,如果您正在运行图像或多媒体文件的其他备份,您会发现您的驱动器/服务器不久就会爆满。

4.网站备份服务

当然,手动处理所有这些可能会让人感到有点不知所措; 它仍然需要注意,像忘记清理目录这样简单的事情可能会导致文件被删除或突然向您的帐户添加费用(Dropbox 允许免费进行一些演出,但随后费用很快就会增加)。

因此,如果您正在运行商业站点,那么使用专业的备份服务可能是个好主意。 这些通常会完成上述所有提到的所有事情,但以更可靠的方式。

与手动备份不同,其他人会为您完成工作并解决您可能遇到的所有小问题。 与插件不同,它们将在您的网站之外运行; 你不需要添加它们。 这样做不会降低处理速度,也不会造成任何安全漏洞。

以下是一些流行备份服务的非常简短的示例。 (免责声明:这并不是一个全面的指南,只是足以了解现有的内容。我尚未测试所有提到的服务)。

  • Sucuri 备份 – 一个很好的解决方案,因为我们建议使用 Sucuri 来保证您网站的安全。
  • 代码卫士
  • 备份卫士
  • 删除我的网站

网站备份策略:最佳实践

无论您选择哪种方法,备份网站都应该有一个工作流程计划。

虽然上面提到的所有方法都有效,但您绝对需要制定适当的策略,否则您所提到的任何系统都可能会遇到一些严重的漏洞。

制定清单并确定以下类别的答案:

1. 多久备份一次您的网站?

这个很重要。 您想每天还是每月运行备份?

您可能会考虑在每次网站发生更改(新产品、新博客文章等)时运行一个想法。 这取决于你,但你应该确保你有一个适当的计划。

2. 自动化调度

遵循上述规定,制定时间表是关键。 作为基准,您可能需要设置备份发生时间的计划。

3.使用远程存储

您将这些数据存储在哪里? 您不会只想在服务器甚至笔记本电脑上保留副本。 您要使用外部硬盘驱动器吗? 云端? 哪个云服务?

4. 保留期限

您需要将每个备份的副本保留多长时间? 一年前的文件是否是必要的,或者它们只是积灰,可以用更新的备份替换吗?

5. 加密

备份的安全性非常重要,特别是如果您拥有专有信息(例如机密产品定价信息,或更重要的是客户记录)。

制定备份加密和保护计划(AES 256 位私钥加密和 TLS/SSL 传输安全)。 了解有关加密的更多信息。

6. 在 RAID 阵列上存储备份

RAID 阵列(独立磁盘冗余阵列)不仅是创建网站和/或数据的多个副本的好主意,而且还可以提高性能。

如果其中一个磁盘出现故障,它们将提供额外的保护。 这是专业备份服务提供的典型功能。

7. 选择性恢复

制定适当的程序,以防您不需要恢复站点的每个部分。 也许大部分都很好,但有些部分可能已经丢失了。

例如,如果一个产品表损坏,您只需替换 SQL 转储中的该部分即可。 这通常比清除所有内容来替换一个文件更好。

事实上,如果出现问题就更换所有东西是一个常见的错误。 当然,这可行,但您将丢失上次备份后发生的所有内容。

最好确定是否需要更换所有东西。 如果其他方法都失败,请保存完整备份作为最后的手段。

如何恢复网站备份

好吧,你的网站消失了,但你有备份。 如何从备份中恢复您的网站? 这个比较简单。

如果副本存储为 zip 文件,只需将其解压缩并将所有文件加载回其原始位置即可。

获取 SQL 文件(在 SQL 转储期间创建的文本文件),然后使用命令行重新创建数据库,或者使用 phpMyAdmin(或任何其他图形数据库管理系统,如 MySQL Workbench),然后导入文件或将整个内容复制到 SQL 窗口中并运行它。

在本地进行测试,如果一切正常,则将其全部加载到服务器上。 您应该立即恢复并运行。

如果您使用专业的备份服务,此过程可能会更容易。 任何体面的服务都应该为您提供用于恢复备份的工具,无论是部分恢复还是完整站点恢复。

额外提示:使用分期进行开发

除了简单备份现有文件之外,如果您正在开发自己的网站,或与开发团队合作,您可能希望考虑使用版本控制系统来记录开发过程中的所有阶段。

构建网站时,通常会出现网站设计方式的版本和更改。 也许您正在对网站进行彻底的重新设计,但想保留旧网站的副本。

此外,通常情况下,在开发网站时,会出现严重错误,您需要找到更改前的文件。 您还需要保留网站的本地开发版本,以便在公开启动网站之前进行更新或更改。

这就是版本控制系统发挥作用的地方。 这与每次进行更改时制作文件夹副本类似,但更有组织性,并且可以允许协作开发。

Git 是一个出色的工具,可以让您的开发过程井井有条。 它不仅可以在本地创建良好的代码备份,还可以轻松地在云中来回移动以实现安全的远程备份。

而不是在不同的目录中拥有多个文件副本; 它们存储在分支中,这可以使多人处理文件而不会产生太多冲突风险。

当它们准备好时,可以将它们合并到主要开发分支中,并最终合并到要部署的主分支中。

以下是两个最流行的 Git 存储库。

  • 如果您愿意分享源代码(它的核心是开源),GitHub 是免费的,而且还提供非常实惠的私有代码存储库。 它也是查找代码片段的好地方,并且拥有一个很棒的开发人员社区
  • BitBucket 类似; 虽然社区规模不大,但他们确实免费提供一些私人存储库。

结论

虽然某些方法比其他方法具有更好的优势,但备份网站是不容忽视的必要条件。 理想情况下,您应该考虑使用上述方法的组合。

确保您拥有文件的重复副本将为您节省日后的麻烦。 即使您的网站没有发生任何不好的事情,并且您不需要这个,请想想您将获得额外的睡眠,而无需担心它。

您备份计算机上的文件; 您的网站应该遵循相同的规则。