每晚自动备份网站

本周早些时候,在一家名为Cornerhost的服务上托管网站的网站所有者受到了很大的惊吓:该服务似乎将在未经通知的情况下关闭,而他们的所有者却无处可寻。很可怕吧?除非你定期备份你的网站。下面介绍如何为您的网站设置自动备份,以便在最坏的情况发生时,您的数据可以安全地保存在您的手中。...
Illustration for article titled Automatically Back Up Your Web Site Every Night

本周早些时候,在一家名为Cornerhost的服务上托管网站的网站所有者受到了很大的惊吓:该服务似乎将在未经通知的情况下关闭,而他们的所有者却无处可寻。很可怕吧?除非你定期备份你的网站。下面介绍如何为您的网站设置自动备份,以便在最坏的情况发生时,您的数据可以安全地保存在您的手中。

如果你为了运行任何一种基于网络的应用程序而付费,从你的WordPress博客到名牌网站,再到文件共享服务,再到社交媒体数据档案,你需要像备份电脑数据一样备份你的网络服务器的数据。在数据库驱动的网站上,有两种数据需要保存和恢复,以防发生灾难:组成网站的文件(PHP/Perl/Python、JavaScript、CSS文件等)和数据库的内容。此外,任何好的备份系统都应该对备份数据进行本地拷贝和远程拷贝。

我运行了几个数据库驱动的网站和应用程序,包括这个博客,所以我的备份系统必须是可靠的。我是这样安排的。

此方法假设了以下几点:

  • 您正在运行一个基于LAMP的网站(Linux、Apache、MySQL和PHP/Perl/Python)。
  • 您可以通过SSH对web服务器进行命令行访问。
  • 您知道如何创建新文件夹和文件的chmod权限。
  • 您可以在服务器的命令行上运行bash脚本并设置cron作业。
  • 您知道您的web服务器的所有文件都存储在哪里,需要备份哪些数据库,使用什么用户名和密码登录MySQL。
  • 为了进行远程数据备份,除了站点的服务器之外,还需要通过SSH访问另一个服务器。我向我的一个朋友请求在他的服务器上建立一个帐户来存储一些备份文件,他很感激。如果你没有一个朋友和另一台主机上的服务器在一起,你可以在家里运行一个永远在线的服务器,然后备份到那里。我不喜欢在家里一直开着电脑,因为那里的带宽速度可能很慢,所以我建议找个朋友备份(你也可以给你的朋友提供同样的礼遇)。

所有系统都正常吗?让我们把你的备份系统设置好。

第一:本地备份

为了备份网站,脚本必须备份两件事:组成网站的所有文件和数据库中的所有数据。在这个方案中,您没有备份PHP或PERL脚本生成的HTML页面;您正在备份PHP或PERL源代码本身,它访问数据库中的数据。这样,如果你的网站崩溃了,你可以在一个新的主机上恢复它,一切都会像现在这样工作。

首先,将SSH放到web服务器中,并在主目录中创建一个名为backups的文件夹。在此文件夹中,创建一个名为backup.sh的文件。然后,创建一个文件夹名文件。

结果如下:

your_home_directory/ | + - backups/ | + - backup.sh | + - files/

我们现在关心的文件是backup.sh。这个文件将是一个脚本,它可以将数据压缩并保存在文件中。

我运行的脚本很大程度上基于我在How-To-Geek的wiki上找到的一个示例。下面是backup.sh的源代码,它负责处理**arterware.org的文件和数据库:

#!/bin/sh THESITE="**arterware.org" THEDB="my_database_name" THEDBUSER="my_database_user" THEDBPW="my_database_password" THEDATE=`date +%d%m%y%H%M` mysqldump -u $THEDBUSER -p${THEDBPW} $THEDB | gzip > /var/www/vhosts/$THESITE/backups/files/dbbackup_${THEDB}_${THEDATE}.bak.gz tar czf /var/www/vhosts/$THESITE/backups/files/sitebackup_${THESITE}_${THEDATE}.tar -C / var/www/vhosts/$THESITE/httpdocs gzip /var/www/vhosts/$THESITE/backups/files/sitebackup_${THESITE}_${THEDATE}.tar find /var/www/vhosts/$THESITE/backups/files/site* -mtime +5 -exec rm {} \; find /var/www/vhosts/$THESITE/backups/files/db* -mtime +5 -exec rm {} \;

将此源代码复制并粘贴到backup.sh文件中。要在类似于我的设置(从第3行到第7行)中成功运行此脚本,必须将**arterware.org、my\u database\u name、my\u database\u user和my\u database\u password替换为网站的正确值。

这个版本的脚本对文件位置做了两个假设。在我的web服务器(以及许多,但不是所有的设置)上,我的主目录是这样的路径:/var/www/vhosts/example.com/(example.com是您的网站域)。所有可通过web访问的公共文件都位于/var/www/vhosts/example.com/httpdocs/(example.com是您的网站域)。

您的网站文件路径可能不同。如果是这样,请在脚本的源代码中,将/var/www/vhosts/$THESITE/backups/替换为备份文件夹位置的路径,并将/var/www/vhosts/$THESITE/httpdocs/替换为站点可通过web访问的文件的位置。

让我们看看这个脚本在做什么。在第3行到第7行中设置了一些变量之后,第9行正在运行第4行中命名的数据库中所有数据的mysqldump,将其存档,并使用类似dbbackup\u example.com\u 1402120101.bak.gz.tar的文件名将其存储在files目录中。第11行和第12行将站点的源代码文件归档到httpdocs目录中,并使用类似sitebackup\u example.com\u 1402120101.tar的文件名将它们存储在files目录中。请注意,这两个文件名都包含日期,因此您可以看到备份的时间。

最后,第14行和第15行将删除5天前所做的任何备份。你每晚都要运行这个备份脚本,文件很快就会占用很多空间。这就是最后这些命令删除旧备份的原因。您可以将数字5更改为要保留备份的任何天数。

要运行此脚本,必须chmod+x backup.sh。手动运行它以确保它生成您所期望的备份文件。最后,安排它在crontab中按您喜欢的频率运行。要在每天凌晨1:01运行它,您的crontab将如下所示:

1 1 * * * /var/www/vhosts/example.com/backups/backup.sh

确保为您关心的每个网站和数据库运行此脚本。

当您在床上酣睡时,此备份脚本运行了几个晚上后,您的文件目录将充满至少5天的文件和数据库内容备份。干得好。

但你还没做完。

下一步:远程备份

如果WordPress更新出错或者你不小心从数据库中删除了一篇博客文章,那么在你的web服务器上进行备份将节省你的时间。但是,如果您的web服务器无法访问或在火灾中死亡,这将毫无帮助。这就是为什么要将此数据的副本自动发送到远程服务器的原因。

一旦你因为一个慷慨的朋友或在家里而访问了一个远程服务器,你就要建立一个rsync作业,它会将你的web服务器的所有备份转移到它上面,以防发生完全的灾难。几年前,我用rsync在系统间运行了镜像文件的方法,所以我不再重复它,但在这里您将使用相同的方法。

简而言之,在远程服务器上,创建一个名为offsitebackups的文件夹。要将新网站备份文件rsync到远程主机,请使用SSH连接到该主机,然后cron一个类似以下内容的作业:

rsync -e ssh -a —delete [email protected]:/var/www/vhosts/example.com/backups/files/ /your/path/to/offsitebackups/

用您的信息替换用户名、网站名和路径。

该命令将把主机备份文件夹中的所有文件同步到远程服务器的offsitebackups文件夹。运行它以确保它工作。当您登录到web服务器时,它会提示您输入密码。同步完成后,您应该可以在offsitebackups文件夹中看到备份文件。

问题是,当cron试图运行密码时,你不会每天晚上都在附近输入密码。要在没有干预的情况下运行它,您需要在web服务器上设置无密码登录。这篇关于使用rsync自动备份的优秀教程也包含了这些步骤。

设置web服务器的本地和远程、数据库和文件备份需要前期的时间和精力,但一旦设置好了,就可以忘记了。使用此系统,您可以写博客,更新您的博客软件,并直接在web服务器上手动编辑文件,而无需担心丢失更改或无法再次恢复数据。

每晚自动备份网站


想看看你的作品吗?发送电子邮件至submissi***@tl80.com!

  • 发表于 2021-05-27 01:40
  • 阅读 ( 147 )
  • 分类:互联网

你可能感兴趣的文章

设置一个强大的字母数字密码和其他16种方式来保护你的iphone

...复来自锁屏的信息) 家庭控制(控制家庭自动化设备) 钱包(同时禁用Apple Pay) 回未接来电 ...

  • 发布于 2021-03-12 16:12
  • 阅读 ( 251 )

如何创建outlook数据的自动备份

...“选项”可更改安全PST备份运行的几种方式。您可以更改自动备份计划,也可以将其完全关闭。大多数其他设置对您来说都没有用处,因为它们是供企业使用的。 ...

  • 发布于 2021-03-15 01:59
  • 阅读 ( 163 )

用这8个工具自动备份你的照片

...9美元或每年49.99美元)。这可以让你安装和使用它的桌面自动上传工具。它还承诺提供无广告的浏览体验,并为您提供照片的高级统计信息,包括哪些照片是当前流行的,以及是什么驱使人们浏览您的照片。 ...

  • 发布于 2021-03-15 05:26
  • 阅读 ( 225 )

如何在Windows10中自动执行常见的维护任务

...即使是免费版本。 相关:设置CCleaner在windows7、Vista或XP中每晚自动运行 磁盘碎片整理已经自动化(如果需要) 如果你使用电脑的时间够长,你可能已经养成了整理硬盘的习惯。好消息是,这是你真的不需要担心太多了。 首先,...

  • 发布于 2021-04-05 05:39
  • 阅读 ( 203 )

如何在任何操作系统上还原文件的早期版本

...Windows备份创建的备份(如果使用该备份系统),也来自自动系统还原功能。这意味着您应该能够在不进行任何配置的情况下还原某些文件的早期版本—系统还原将为您提供—但如果同时启用Windows备份,它肯定会工作得更好。 wi...

  • 发布于 2021-04-11 00:41
  • 阅读 ( 137 )

icloud做什么以及如何从windows访问它

...常规的设备备份,而是可以在iCloud启用后通过Wi-Fi将数据自动备份到iCloud。 这些iCloud设置都可以在iPhone、iPad或iPod Touch上的设置应用程序的iCloud部分访问。您可以查看要同步的数据类型,并选择要同步的数据类型。 苹果还同步...

  • 发布于 2021-04-11 14:40
  • 阅读 ( 201 )

如何在计算机之间同步文件而不将其存储在云中

...,但是它可以用来运行到服务器的自动增量备份。你可以每晚运行rsync作业,并将文件同步到FTP服务器。 有许多其他的选择,你可以使用。任何带有自托管服务器组件或自动创建增量备份并上传到远程服务器的解决方案都可以...

  • 发布于 2021-04-11 18:38
  • 阅读 ( 182 )

如何用ifttt自动备份你的gmail附件

说到快速完成任务,自动化就是游戏的名字。我们以前看过IFTTT,新的一批更新引入了许多选项,可以用来自动处理发送到你Gmail地址的文件。 这有什么用?嗯,最明显的出发点是简单地创建一个备份的任何文件,你收到通过电...

  • 发布于 2021-04-11 18:49
  • 阅读 ( 133 )

如何使用rsync在linux上备份数据

...可能会有点混乱,所以让我给你举个例子。以下命令将在每晚10点运行rsync命令: 0 22 * * * rsync -av --delete /Directory1/ /Directory2/ 第一个“0”指定一小时的分钟,“22”指定晚上10点。因为我们希望这个命令每天运行,所以我们将用星...

  • 发布于 2021-04-12 02:34
  • 阅读 ( 139 )

在云中免费备份和共享数据的最佳网站

...其他功能。大多数这些服务都提供了有用的备份功能,如自动备份、计划、版本控制和恢复功能。有些服务还提供其他有用的功能,例如可以使用浏览器或移动应用程序随时随地访问备份的文件,以及将媒体文件流式传输到移动...

  • 发布于 2021-04-12 06:56
  • 阅读 ( 215 )
h671101
h671101

0 篇文章

相关推荐