日期:2014-05-16 浏览次数:20689 次
一个简单的两个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了。