有在网上提供这么多的教程镜像或采取不同的方法,你的网页文件的备份,在这里我创建这篇文章对我今后的参考,在这里我将使用一个非常简单和灵活的Linux命令创建备份您的网站。 本教程将帮助您使用“Rsync的 ”同步您的两个Web服务器之间的数据。
同步两个Apache Web服务器
创建使用rsync您的Web服务器的镜像的目的是,如果你的主要的Web服务器出现故障时,备份服务器可以接管,以减少你的网站的停机时间。 这种创建Web服务器备份的方式对于中小型网络业务非常有效。
同步Web服务器的优点
使用rsync创建Web服务器备份的主要优点如下:
- Rsync仅同步那些已更改的字节和数据块。
- Rsync能够检查和删除备份服务器上已从主Web服务器中删除的文件和目录。
- 它在远程复制数据时处理权限,所有权和特殊属性。
- 它还支持SSH协议以加密方式传输数据,以便您确信所有数据都是安全的。
- Rsync在传输消耗较少带宽的数据时使用压缩和解压缩方法。
如何同步两个Apache Web服务器
让我们继续设置rsync以创建Web服务器的镜像。 在这里,我将使用两个服务器。
主服务器
- IP地址 :192.168.0.100
- 主机名 :webserver.example.com
备份服务器
- IP地址 :192.168.0.101
- 主机名 :backup.example.com
第1步:安装Rsync工具
在这里,在webserver.example.com的这种情况下,Web服务器数据将在backup.example.com被镜像。 而这样做首先,我们需要使用两个以下命令的帮助,在服务器上安装的Rsync。
[root@youcl]# yum install rsync [On Red Hat based systems] [root@youcl]# apt-get install rsync [On Debian based systems]
第2步:创建一个用户运行Rsync
我们可以用root用户安装rsync的,但为了安全起见,你可以创建主Web服务器也就是说webserver.example.com运行rsync的非特权用户。
[root@youcl]# useradd youcl [root@youcl]# passwd youcl
在这里,我创建了一个用户“youcl”,并指定了密码的用户。
第3步:测试Rsync设置
它的时间来备份服务器上测试你的rsync设置(即backup.example.com),并这样做,请键入以下命令。
[root@backup www]# rsync -avzhe ssh youcl@webserver.example.com:/var/www/ /var/www
示例输出
youcl@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密码登陆少 ,你可以阅读我们的文章它。
第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分钟 。 您可以根据需要更改时间和文件夹位置配置。 更多的创造性和使用rsync和cron命令定制,你可以看看我们更详细的文章: