使用rsync创建Web服务器备份的主要优点如下:
设置rsync以创建Web服务器的镜像。我将使用两台服务器。
IP Address
: 192.168.1.111Hostname
: webserver.rumenz.comIP Address
: 192.168.1.112Hostname
:backup.rumenz.com[root@rumenz]# yum install rsync [On Red Hat based systems]
[root@rumenz]# apt-get install rsync [On Debian based systems]
我们可以设置 rsync
root
用户,但出于安全原因,你可以在主网络服务器上创建一个非特权用户,即webserver.rumenz.com
运行 rsync。
[root@rumenz]# useradd rumenz
[root@rumenz]# passwd rumenz
在这里我创建了一个用户
rumenz
并为用户分配了密码。
测试 rsync 设置了(
backup.rumenz.com
) 并要执行此操作,请键入以下命令。
[root@backup www]# rsync -avzhe ssh rumenz@webserver.rumenz.com:/var/www/ /var/www
rumenz@webserver.rumenz.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
转移;你可以根据需要更改文件夹位置。
已经完成了 rsync 设置,现在是时候设置一个
cron
对于 rsync。因为我们将使用rsync与SSH
协议,ssh 将要求进行身份验证. 为了让cron顺利工作,我们需要设置passwordless ssh logins
对于 rsync。在这个例子中,我这样做
root
保存file ownerships
同样,你也可以为其他用户执行此操作。首先,我们将生成一个
public
和private
在备份服务器上使用以下命令键(即backup.rumenz.com
)。
[root@backup]# ssh-keygen -t rsa -b 2048
输入此命令时,请不要提供密码,然后按回车键
Empty passphrase
这样 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 + |
| . . |
+-----------------+
我们的
Public
和Private
密钥已生成,我们必须与主服务器共享它,以便主 Web 服务器能够识别此备份机器,并允许它在同步数据时无需输入任何密码即可登录。
[root@backup html]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@webserver.rumenz.com
现在尝试登录服务器,使用
ssh root@webserver.rumenz.com
,然后签入.ssh/authorized_keys
.
[root@backup html]# root@webserver.rumenz.com
现在,我们完成了共享密钥。要更深入地了解
SSH password less login
我们为此设置一个 cron。要设置 cron,请使用以下命令打开 crontab 文件。
[root@backup ~]# crontab –e
它将打开 /etc/crontab 文件以使用你的默认编辑器进行编辑。在此示例中,我正在编写一个 cron,每5分钟运行一次以同步数据。
*/5 * * * * rsync -avzhe ssh root@webserver.rumenz.com:/var/www/ /var/www/
上面的 cron 和 rsync 命令只是同步
/var/www/
从主要web server
到backup server
在每一个5 minutes
.你可以根据需要更改时间和文件夹位置配置。
相关文章