如何使用Rsync同步两个Apache Web服务器/网站

使用Rsync创建Web服务器的镜像的目的是,如果您的主Web服务器失败,备份服务器可以接管以减少您的

有在网上提供这么多的教程镜像或采取不同的方法,你的网页文件的备份,在这里我创建这篇文章对我今后的参考,在这里我将使用一个非常简单和灵活的Linux命令创建备份您的网站。 本教程将帮助您使用“Rsync的 ”同步您的两个Web服务器之间的数据。

同步Apache Web服务器

同步两个Apache Web服务器

创建使用rsync您的Web服务器的镜像的目的是,如果你的主要的Web服务器出现故障时,备份服务器可以接管,以减少你的网站的停机时间。 这种创建Web服务器备份的方式对于中小型网络业务非常有效。

同步Web服务器的优点

使用rsync创建Web服务器备份的主要优点如下:

  1. Rsync仅同步那些已更改的字节和数据块。
  2. Rsync能够检查和删除备份服务器上已从主Web服务器中删除的文件和目录。
  3. 它在远程复制数据时处理权限,所有权和特殊属性。
  4. 它还支持SSH协议以加密方式传输数据,以便您确信所有数据都是安全的。
  5. Rsync在传输消耗较少带宽的数据时使用压缩和解压缩方法。

如何同步两个Apache Web服务器

让我们继续设置rsync以创建Web服务器的镜像。 在这里,我将使用两个服务器。

主服务器
  1. IP地址 :192.168.0.100
  2. 主机名 :webserver.example.com
备份服务器
  1. IP地址 :192.168.0.101
  2. 主机名 :backup.example.com

第1步:安装Rsync工具

在这里,在webserver.example.com的这种情况下,Web服务器数据将在backup.example.com被镜像。 而这样做首先,我们需要使用两个以下命令的帮助,在服务器上安装的Rsync。

[root@howtoing]# yum install rsync        [On Red Hat based systems]
[root@howtoing]# apt-get install rsync    [On Debian based systems]

第2步:创建一个用户运行Rsync

我们可以用root用户安装rsync的,但为了安全起见,你可以创建主Web服务器也就是说webserver.example.com运行rsync的非特权用户。

[root@howtoing]# useradd howtoing
[root@howtoing]# passwd howtoing

在这里,我创建了一个用户“howtoing”,并指定了密码的用户。

第3步:测试Rsync设置

它的时间来备份服务器上测试你的rsync设置(即backup.example.com),并这样做,请键入以下命令。

[root@backup www]# rsync -avzhe ssh howtoing@webserver.example.com:/var/www/ /var/www
示例输出
howtoing@webserver.example.com's password:
receiving incremental file list
sent 128 bytes  received 32.67K bytes  5.96K bytes/sec
total size is 12.78M  speedup is 389.70

您可以看到,您的rsync现在工作绝对正常和同步数据。 我曾用“ 的/ var / www”的转移; 您可以根据需要更改文件夹位置。

第4步:使用SSH无密码登录自动同步

现在,我们使用rsync设置完成,现在是时候建立rsync的一个cron。 当我们要使用与SSH协议的rsync,ssh将被要求进行身份验证,如果我们不提供密码与cron它不会工作。 为了工作的cron顺利,我们需要设置密码的ssh登录 rsync的。

在这里,在这个例子中,我这样做作为用户保留文件所有权为好,可以替代用户做到这一点。

首先,我们将生成的备份服务器上的下列命令(即backup.example.com) 公共私有密钥。

[root@backup]# ssh-keygen -t rsa -b 2048

当你输入这个命令,请不要提供密码,然后点击进入空密码 ,这样的rsync的cron不会需要同步数据的任何密码。

示例输出
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
9a:33:a9:5d:f4:e1:41:26:57:d0:9a:68:5b:37:9c:23 root@backup.exmple.com
The key's randomart image is:
+--[ RSA 2048]----+
|          .o.    |
|           ..    |
|        ..++ .   |
|        o=E *    |
|       .Sooo o   |
|       =.o o     |
|      * . o      |
|     o +         |
|    . .          |
+-----------------+

现在,我们的公共私人密钥已经产生,我们必须与主服务器分享,这样主要的Web服务器将认识到这一点的备用机,并允许它不问任何密码而同步数据登录。

[root@backup html]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@webserver.example.com

现在尝试登录到本机,以“SSH'root@webserver.example.com'”,并在的.ssh / authorized_keys的检查。

[root@backup html]# root@webserver.example.com

现在,我们完成了共享密钥。 要知道更深入的了解SSH密码登陆少 ,你可以阅读我们的文章它。

  1. SSH无密码登录5个简单步骤

第5步:安排Cron自动同步

让我们为此设置一个cron。 要设置cron,请使用以下命令打开crontab文件。

[root@backup ~]# crontab –e

它将打开/ etc / crontab文件,以使用默认编辑器进行编辑。 这里在这个例子中,我写一个cron,每隔5分钟运行一次,以同步数据。

*/5        *        *        *        *   rsync -avzhe ssh root@webserver.example.com:/var/www/ /var/www/

以上cron和rsync命令简单地同步“/无功/网络 /”从主Web服务器备份服务器5分钟 您可以根据需要更改时间和文件夹位置配置。 更多的创造性和使用rsynccron命令定制,你可以看看我们更详细的文章:

  1. 10 Rsync命令在Linux中同步文件/文件夹
  2. 11 Cron在Linux中的计划示例