Loading...

利用rsync在两台服务器之间定期同步数据

首先,在两台服务器A和B同时装上rsync。

centos:yum install rsync -y

debian:apt-get install rsync -y

这里我们假设B是备份服务器,A上所有的改动都同步到B上去.

在A上输入 ssh-keygen。命令(一路回车):

ssh-keygen

输入ssh-keygen将会显示如下结果

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:
d7:15:ad:ff:37:99:4b:c8:01:20:b2:8b:1a:2b:2d:1f root@030.homezz.com
The key’s randomart image is:
+–[ RSA 2048]—-+
| . . . .. |
| o . . ..|
| . . .. |
| . . …. |
| . . . S . .. . |
| .+ . . o .|
|ooE o .+|
|.o . .+o|
| . .+|
+—————–+

我们将创建好的公钥上传到B服务器,命令如下

scp /root/.ssh/id_rsa.pub root@B的ip:/root/.ssh/_pub

提示的时候输入密码,该文件即上传到了B服务器。

ssh登陆到B服务器,运行命令 cat /root/.ssh/_pub>>/root/.ssh/authorized_keys

在B服务器中,打开ssh配置文件 vim /etc/ssh/sshd_config,删除 #PubkeyAuthentication yes 这行前面的#

重启sshd: service sshd restart

现在,从A服务器 ssh root@Bip 看看是否可以无密码登陆了?如果上面步骤无误的话,是肯定可以无密码登陆了

 

现在在A服务器上开始运行rsync做一次数据同步

/usr/bin/rsync   -rvuog   /www/*  root@B的ip:/www/

这样就会将A /www/  下的所有文件,同步到B服务器的/www/下,第一次运行时间会很久。如果A上有文件不存在了,你同步的时候也需要B服务器上的文件也同时删除掉,那么参数添加一个 –delete

/usr/bin/rsync   -rvuog    –delete  /www/*  root@B的ip:/www/

第一次同步完毕之后,在A服务器上创建一个cronjob,定期执行同步。

命令为crontab -e,

然后输入

0 */12 * * * /usr/bin/rsync   -rvuog  –delete /www/  root@B的ip:/backup/file.homezz.com/ >/dev/null 2>&1

表示12小时同步一次。

注意,若你数据量过大,不建议同步周期太频繁,否则会导致不可预料的错误。个人觉得12小时或者6小时比较合适

标签:, ,
发表于 2012-04-03 11:27:25 目录:网站技术, 虚拟主机 [RSS 2.0] 你可以发表评论, 或者从您的网站 trackback
  • 相关阅读
  • homezz 美国专业主机商
    已经有4位大师动手指导 拒绝低俗
    • 1楼 小虾 在2012.04.03 11:40发表评论如下: 回复

      必须支持啊 东哥你的智慧可以照亮整个宇宙!

    • 2楼 qiuai 在2012.04.03 23:00发表评论如下: 回复

      =.=有什么办法实现tar.gz压缩包的增量备份么…

      • 3楼 sundaymouse 在2012.10.29 00:24发表评论如下: 回复

        配置好了,但是加上 >/dev/null 2>&1 会报错,不知道不加有木有影响

        评论分页: 1
        (Required)
        (Required, not published)
        如果留言未显示无需重复留言,我将为你恢复!