一个简单的两个Linux之间的容灾备份的Demo

jiangxinyu 2011-05-30

一个简单的两个Linux之间的容灾备份的Demo,设计到的内容有ssh公钥和私钥的原理,rsync命令的用法。

当然使用这些的前提是ssh和rsync已经都安装好。

首先配置ssh,当rsync通过ssh登陆的时候可以不用输入密码。

场景要求:

  场景角色:  系统类型           IP 地址                机器名           当前操作用户名

  Server: red hat linux 9,    192.168.2.103    redhat1        root

  Client:      red hat linux 9,     192.168.2.104   redhat2        root

需要达到的目地是: 直接在client端可以备份Server端制定目录的内容。

一  配置ssh

  1. 产生一个基本的public key和private key pair。在client redhat2中使用ssh-keygen -t rsa 产生一个key pair(只针对rsa v2)

     2.产生成功后,会在$HOME/.ssh目录下产生两个文件(我自己的目录是在/root/.ssh,如果你当前使用的是test用户,则在/home/test/.ssh目录中),一个是id_rsa(private key),另外一个id_rsa.pub(public key),

     3. 传送id_rsa.pub(public key)到redhat1服务器中,scp  /root/.ssh/id_rsa.pub root@redhat1:/tmp 

     4.传送成功后,配置server端的ssh验证。

    5.  在server端,vi /etc/ssh/sshd_config

     6. 找到这句话AuthorizedKeysFile      .ssh/authorized_keys,去掉前面的注释符号#

     7.现在知道了吧,public key应该放在.ssh/authorized_key文件中,这样当有ssh登陆请求时,才会比对。

     8.由于id_rsa.pub放在/tmp中,因此执行 cat  /tmp/id_rsa.pub >> /root/.ssh/authorized_key,如果你想以test2这样的非root用户登录server,则该Public key应该放在~/.ssh/authorized_key文件中。

     9.验证下,是否配置成功,在client端,输入ssh root@redhat1看是否仍需要输入密码。我的已经配置成功。

     10.在client端,可以备份数据了,可以测试一下。将服务器端的/root目录下面的数据备份到client端的/tmp目录下。输入如下:

  rsync -av -e ssh root@redhat1:/root /tmp

     11.  cd /tmp下,可以看到root目录。进入该目录下,发现该目录中已经有了server /root下的数据。

     12.关于定期的备份,可以使用crontab这个命令来实现。这样就Ok了。

相关推荐