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了。