频道栏目
首页 > 资讯 > Linux > 正文

linux rsync+ssh镜像备份

13-11-24        来源:[db:作者]  
收藏   我要投稿
公司的某台linux服务器实在是让人不放心,就害怕在哪个雷雨交加的晚上,脆弱的它宕机了…没办法,资源有限,只好把自己平时办公的电脑贡献出来,作为镜像备份服务使用。办公电脑装的是window XP和centos5 双系统,1TB硬盘。在linux下分了400GB硬盘空间作为备份用。(唉,真苦啊,申请新电脑的消息也石沉大海。)
言归正传。
实际环境:两台centos5服务器进行数据同步备份。
备份方式采用:rsync+ssh (因为这是最简单的一种备份方式了,而且rsync备份的速度非常块,不但可以备份文件,连同文件的属性,所有者,所属组织等信息都能详细备份,而且每次备份只检测更新部分。所以,rsync对我来说是最理想的备份方式。)
软件安装:rsync  ,ssh  关于ssh,一般默认都是安装好的,可以直接用了。至于rsync都是自己现装的。linux的依赖关系实在烦人,所以决定采用源码包编译安装,下载地址:http://www.rsync.samba.org
下载解压完成后,进入解压完后的目录,直接按照configure,make,make install三部曲来就ok了。(别忘装GCC)。
下面就是实践过程:
假设:主服务器IP地址是:192.169.10.100
备份服务器IP地址是:192.168.10.110
现在主服务器、备份服务器上安装rsync软件  。
安装完后:
一:备份服务器上穿件ssh密钥(用来免密码登录目标服务器),这里我用slave这个帐号来进行镜像同步(用哪个帐号来同步数据,就用哪个帐号来制作密钥)。
#ssh-keygen -t rsa<==这个步骤在产生 Key pair

Generating public/private rsa key pair.
Enter file in which to save the key (/home/test2/.ssh/id_rsa): <==这里按下Enter
Enter passphrase (empty for no passphrase): <==这里按 Enter
Enter same passphrase again: <==再按一次 Enter
Your identification has been saved in /home/test2/.ssh/id_rsa. <==这是私钥
Your public key has been saved in /home/test2/.ssh/id_rsa.pub. <==这是公钥
The key fingerprint is:        *********************
 
# 注意∶ -t 指的是『使用何种密码演算方式?』由于我们使用 RSA ,
# 所以直接输入 -t rsa 即可建立两支 Keys !
# 此外,建立的两把 Keys 都放置在家目录下的 .ssh 这个目录中!
# 察看一下这两把 Keys 吧
 
$ ll ~/.ssh
-rw------- 1 test2 test2 887 Nov 12 22:36 id_rsa
-rw-r--r-- 1 test2 test2 233 Nov 12 22:36 id_rsa.pub
-rw-r--r-- 1 test2 test2 222 Oct 31 11:20 known_hosts
上面出现的know_hosts,就是用ssh第一次登录目标服务器时候,是需要你输入yes的,输入完之后就有了这个东东了。第二次就不需要输入yes了,直接输入密码就可以了。key制作好了,密码也不输入了,就直接登录远程服务器了。
上面的**************.pub就是公钥。把这个文件的复制到主服务器的master用户的家目录下.ssh文件夹内。重命名为authorized_keys  如果有多个客户端要连进来,那就用cat id_rsa.pub >> authorized_keys 把公钥的信息追加到authorized_keys文件就可以了。
接下来就可以尝试一下免密码登录了。
$ssh master@192.168.10.100  回车 是不是直接进去了呢?  —>(我在这里郁闷了一个晚上,当时家里没有网线,看了些参考资料始终没有搞定,原因在于我用CRT软件连的虚拟机做实验,这里要在真是的shell环境先方可以,不然,死活要你输入密码,你得把密钥导入到CRT当中才可以的。估计putty也是这样。)
上诉都成功后,就可以用slave账户同步master账户的资料了(只要master有权限的都可以同步)。
输入命令:
rsync -av  -e ssh master@192.168.10.100:/home  /home
将主服务器/home 下的内容同步到 本机的/home目录下面。
这个地方大家可以做个实验,就是关于路径后面的/问题,比如:/home/ /home/  这样跟上面的效果不同。
rsync 语法;
 
[root@linux ~]# rsync [-avrlptgoD] [-e ssh] [user@host:/dir] [/local/path]
参数∶
-v ∶观察模式,可以列出更多的资讯;
-q ∶与 -v 相反,安静模式,输出的资讯比较少;
-r ∶递回复制!可以针对『目录』来处理!很重要!
-u ∶仅更新 (update),不会覆盖目标的新档案;
-l ∶复制连结档的属性,而非连结的目标原始档案内容;
-p ∶复制时,连同属性 (permission) 也保存不变!
-g ∶保存原始档案的拥有群组;
-o ∶保存原始档案的拥有人;
-D ∶保存原始档案的装置属性 (device)
-t ∶保存原始档案的时间参数;
-I ∶忽略更新时间 (mtime) 的属性,档案比对上会比较快速;
-z ∶加上压缩的参数!
-e ∶使用的通道协定,例如使用 ssh 通道,则 -e ssh
-a ∶相当于 -rlptgoD ,所以这个 -a 是最常用的参数了!
更多说明请参考 man rsync 的解说!
这样我的目的就达到了,可以同步数据了,写个小脚本,放进crontab里面,每天下班的时候切换到linux系统。早上来的时候看看同步成功了没有。然后切换到window xp。就这样吧。
本次实验完全参考的《鸟哥的linux私房菜》
 
其实,这种备份不到好,尤其是在系统繁忙的时候。而且备份服务器什么都不做,费电不说,浪费资源。主服宕机了,备份服务器无法起作用。只能起到减少损失的作用

相关TAG标签
上一篇:利用crond实现秒级执行的办法
下一篇:网络异常测试初探
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站