配置Unsion文件的同步性

到目前为止,我们已经讨论了如何设置服务器,并在主-主复制设置中配置每个服务器上的MySQL服务器。随着我们的数据库在服务器之间被复制,下一步是确保网站的文件也会被复制到它们之间。为此,我们将使用Unison文件同步工具。

配置Unsion文件的同步性
配置Unsion文件的同步性

使用Unison来同步两个目录之间的文件

Unison是一种非常有效的工具,它用于同步两个目录之间的文件。它可以通过在同一台服务器上使用两个目录或跨多个服务器来完成。它还可以用于在不同系统上的同步目录,比如Windows、Mac或Linux到Windows。它附带了基于debianlinux发行版的标准存储库,这使设置变得更简单。关于unison的统一的缺点是,每次您想要同步更改时都需要运行它;它不会作为一个守护进程而运行。下一次我们将会看到一个自动化的解决方案。所有的步骤都需要在每个服务器上执行,所以我们将首先在第一个服务器上设置所有的步骤,然后这个过程可以在第二个服务器上重复。

在您的服务器上设置Unison

所以我们从安装两个unison开始

sudo apt-get install unison

有了它的安装,我们需要创建一个能够同步文件的用户。我们可以使用根用户,但这可能会带来潜在的安全风险。我们将调用这个用户www-sync来让它的目的更明确。

sudo adduser www-sync

您将会收到一些关于用户的问题,除了密码请求之外,您可以跳过这些问题,因为您需要指定一个安全的密码。在此之后,我们需要将www-sync用户添加到www数据组:

sudo usermod -G www-data www-sync

这样做的原因是,在基于debian的系统上,www数据用户是web服务器运行的。因此,它应该对服务器的网站目录中的所有文件进行读写访问,我们将依赖这些文件来同步这些文件。如果www-data用户和组没有您的网站文件的所有权,您可以把它设置为:

sudo chown -R www-data:www-data /var/www

此操作被完成后,我们现在可以将用户更改为www-sync用户,并查看创建unison来同步目录所需的配置。

sudo su www-sync

nano ~/.unison/websync.prf

现在粘贴以下配置:

避免Unison询问任何问题

auto=true

batch=true

fastcheck=true

silent=true

保存文件的属性

group=true

owner=true

times=true

如果有冲突,最好选择最新的文件

prefer=newer

配置目录来使用

label=WebDirectory

root=/var/www

root=ssh://www-sync@192.168.0.3/var/www

sshargs=-C

记住,在粘贴这个时,您需要修改IP 192.168.0.3,用于设置您的IP。当粘贴到第一个服务器时,使用第二个服务器的IP,当粘贴到第二个服务器时,使用第一个服务器的IP。一旦完成此操作,保存并退出该文件。

接下来,我们需要创建一些SSH密钥,这样两个服务器就可以进行同步,而无需每次都提示您输入密码:

ssh-keygen -t rsa

您不想为这个设置一个通行的密码,所以您要在提示时点击进入。在这一点上,移到第二个服务器并重复这些步骤是一个好主意,这样该服务器就可以被配置了。

在其他服务器完成这些步骤之后,我们现在需要将公钥复制到其他服务器上。这可以用ssh-copy-id来完成:

ssh-copy-id www-sync@192.168.0.3

您将需要在这两个服务器上都这样做,再次确保在第一个服务器上您使用了第二个服务器的IP,对于第二个服务器来说,反之亦然。

完成这一操作之后,您现在就可以测试该组合能否将文件从一个服务器复制到另一个服务器。在/var/www目录或子目录中创建或编辑一个文件,然后运行它:

unison -batch websync

应该将更改同步到另一个服务器上,这意味着我们现在有了一致的工作来在服务器之间同步数据。

推荐阅读:>>>如何在VPS上建立OpenVPN

本文内容是由midphase主机中文评测网提供,如需转载,请注明出处:http://midphase.cn/