通过文件同步实时备份网站的文件

通过实现两台服务器间的网站文件的同步,可以远程即时备份网站的所有文件。这样如果主机出现故障,或者主机帐号被封,都能迅速切换网站到新的服务器上。

在Linux上,远程文件同步通过 rsync 实现,目前多数Linux上都已经安装了rsync。由于rsync仅复制修改过的文件,因此能最大限度的减少需要同步的文件。

由于rsync同步时,每次都需要用户输入远程服务器的密码,因此如果希望通过脚本定时同步网站文件的话,需要使用证书登录。下面是生成证书的步骤:

首先在需要执行 rsync 命令的A主机上,生成 RSA 密钥:

$ssh-keygen -t rsa

提示输入passphrase时,直接按两次回车健使用默认值。生成的两个密钥:公密钥、私密钥都保存在 ~/.ssh/,其中 ~/.ssh/id_rsa.pub 是公密钥。将公密钥 id_rsa.pub 文件通过FTP或SCP拷贝到远程B主机上。

在远程B主机上,以执行 rsync 时的用户名登录,复制 id_rsa.pub 的内容到 ~/.ssh/authorized_keys:

$ cat id_rsa.pub >>~/.ssh/authorized_keys
$ chmod 700 ~/.ssh/authorized_keys

现在从A主机通过rsync或者SSH到B主机传递文件,就不会再提问密码了。

接着就可以使用 rsync 来同步A主机和B主机的文件夹。在A主机上执行命令:
$ rsync -vaz root@123.123.123.88:/var/www/public_html/ /home/jack/myweb/

就能将远程服务器123.123.123.88上的目录/var/www/public_html/中的所有文件同步到本地目录 /home/jack/myweb/ 中。

将上面的rsync命令放到cron中定时执行,例如每10分钟执行一次。就能实现两台服务器之间的数据同步、备份了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注