LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 746|回复: 4

发现本版的精华区中还没有关于Rsync服务器的,谁能贡献一篇

[复制链接]
发表于 2006-10-24 16:12:14 | 显示全部楼层 |阅读模式
最好是自己实际配过的,不要完全转载别人的东西。
发表于 2006-10-24 16:42:24 | 显示全部楼层
如果你能等的话我会出一篇.不过估计得2个月以后.
我在写系列文章
现在才写道第二章Raid&LVM
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-24 16:55:54 | 显示全部楼层
佩服,等了。
回复 支持 反对

使用道具 举报

发表于 2006-10-25 09:46:06 | 显示全部楼层
真是巧,刚写了一篇,当然肯定参照了网络中的相关文档,不过自己确实实验过!

*********************************************************
Linux 系统服务器配置文档—《rsync + openSSH实现远程备份篇》




一、        简介
1.1.        关于rsync
rsync is an open source utility that provides fast incremental file transfer. rsync is freely available under the GNU General Public License version 2 and is currently being maintained by Wayne Davison.
其官方网站http://samba.anu.edu.au/rsync/ 的解释,rsync为开源的工具用于提供快速增量的文件传输,rsync为自由软件基于GNU GPL v2 目前由Wayne Davison维护。
rsync 即 remote synchronization的缩写,意即为远程同步。可应用于目前所的Unix/Linux系统。

1.2.        关于 SSH及OpenSSH
SSH (Secure Shell)is a protocol for secure remote login and other secure network services over an insecure network,SSH is drafted by IETF (http://www.ietf.org) now.
SSH是一种用于在不安全的环境网络中以安全地方式远程登陆及访问网络服务的协议,目前由IETF起草定义。
OpenSSH is a FREE version of the SSH suite of network connectivity tools that increasing numbers of people on the Internet are coming to rely on.
Many users of telnet, rlogin, ftp, and other such programs might not realize that their password is transmitted across the Internet unencrypted, but it is. OpenSSH encrypts all traffic (including passwords) to effectively eliminate eavesdropping, connection hijacking, and other network-level attacks.
OpenSSH的官方网站www.openssh.com的定义,OpenS ... t网络连接中。
许多用户可能并没有意识到在internet中使用telnet,rlogin,ftp和其它程序时的密码都是未加密传输的。但是OpenSSH会加密所有的传输当然所密码,有效地杜绝了窃听,连接劫持和网络层攻击。

1.3.        rsync的应用
根据rsync的主要功能,可以用于远程镜像(mirror)、同步、备份。
rsync 最早是想要取代 rcp 这个指令的,因为 rsync 不但传输的速度快,而且他在传输时, 可以比对本地端与远程主机欲复制的档案内容,而仅复制两端有差异的档案而已,所以传输的时间就相对的降低很多! 此外, rsync 的传输方式至少可以透过三种方式来运作:
·        在本机上直接运行,用法就与 cp 几乎一模一样,例如:
rsync -av /etc  /tmp (将 /etc/ 的资料备份到 /tmp/etc 内)
·        透过 rsh 或 ssh 的信道在 server / client 之间进行数据传输,例如:
rsync -av -e ssh user@rsh.server:/etc /tmp (将 rsh.server 的 /etc 备份到本地主机的 /tmp 内)
·        直接透过 rsync 提供的服务 (daemon) 来传输,此时 rsync 主机需要启动 873 port:
1. 你必须要在 server 端启动 rsync , 看 /etc/xinetd.d/rsync 即可;
2. 你必须编辑 /etc/rsyncd.conf 设定档;
3. 你必须设定好 client 端联机的密码数据;
4. 在 client 端可以利用:rsync -av user@hostname::/dir/path /local/path
我选择第二种方法,即透过OpenSSH,建立的加密通道,在备份终端使用rsync完成对Server数据的备份。这样在服务器端不用启动rsync daemon,所有的数据传输通过SSH的22端口完成。
1.4.        rsync的特性
rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了-remote sync。它的特性如下:
1、        可以镜像保存整个目录树和文件系统。
2、        可以很容易做到保持原来文件的权限、时间、软硬链接等等。
3、        无须特殊权限即可安装。
4、        优化的流程,文件传输效率高。
5、        可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
6、        支持匿名传输。

二、        配置环境
2.1.        安装环境
Server :(需要备份的对像)
RedHat Enterprise Linux AS 4 (Nahant) kernel 2.6.9-5.EL
HostName:RHCE
Eth0:Sis 900 Ethernet Controller
IP Address:192.168.2.2/24
Backup Client :(用于备份的终端)
Linux Routed-Server 2.4.20-8
HostName: Routed-Server
Eth0: RTL-8139 Ethernet Controller
IP Address:192.168.2.11/24

2.2.        软件包
Server :(需要备份的对像)
openssh-server-3.9p1-8.RHEL4.1
openssh-clients-3.9p1-8.RHEL4.1
# 以上软件包用于完成client到server的单向认证
# 即在Backup Client 上不用输入密码即可SSH到Server

Backup Client :(用于备份的终端)
openssh-3.5p1-6
openssh-server-3.5p1-6
rsync-2.5.5-4
# rsync-2.5.5-4即本次功能实现的主角

2.3.        网络拓朴
见附件

局域网中的实验环境,Backup Client通过rsycn远程将Server中的/etc/目录文件备份至本地的/usr/backup目录中

三、        配置过程
3.1.        配置思路
ü        step 1
通过OpenSSH,完成Backup Client到Server的单向认证One Way Trusted SSH Authorized 。
ü        step 2
在Backup Client端完成rsync备份
ü        step 3
将备份写入crontab,使备份按需要自动定时运行

3.2.        配置步骤
3.2.1.        单向认证
ü        step 1
在Backup-Client中生成root用户的SSH密钥
[root@Routed-Server root]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): yes
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in yes.
Your public key has been saved in yes.pub.
The key fingerprint is:
8f:8f:01:82:e9:1a:7d:50:26:4b:5e:62:08:52:de:34 root@Routed-Server

# 成生Backup-Client的root用户密钥,SSH加密协议为RSA
# 生成的私钥private key和公钥public key置于/root/.ssh目录中

ü        step 2
将生成的公钥public key 放置于Server的/root/.ssh/目录
[root@Routed-Server .ssh]# scp id_rsa.pub root@RHCE:~/.ssh/authorized_keys
root@rhce's password:
id_rsa.pub           100% |*****************************|   228       00:00
# 上传完毕
[root@Routed-Server .ssh]# ssh RHCE 'hostname;ls -l /root/.ssh/'
rhce
total 12
-rw-r--r--  1 root root 228 Oct 24 20:50 authorized_keys
-rw-------  1 root root 887 Oct 24 17:25 id_rsa
-rw-r--r--  1 root root 219 Oct 24 17:25 id_rsa.pub
-rw-r--r--  1 root root   0 Oct 24 19:51 known_hosts
# 可以发现在RHCE主机的root/.ssh/目录下已存在authorized_keys文件
# 这样Backup-Client终端就可以不用密码SSH至Server了

ü        step 3 单向SSH认证测试
在Backup-Client下SSH连接至Server
[root@Routed-Server .ssh]# ssh root@RHCE
Last login: Tue Oct 24 21:01:43 2006 from routed-server
[root@rhce ~]# hostname
rhce

# 这样,不须要密码已可SSH到Server了

3.2.2.        在Backup Client端完成rsync备份
3.2.2.1         rsync语法
[root@linux ~]# rsync [-avrlptgoD] [-e ssh] [user@host:/dir] [/local/path]
参数:
-v :观察模式,可以列出更多的信息;
-q :与 -v  相反,安静模式,输出的信息比较少;
-r :递归复制!可以针对『目录』来处理!很重要!
-R : 保持目录的相对路径;
-u :仅更新 (update),不会覆盖目标的新档案;
-l :复制连结文件的属性,而非连结的目标源文件内容;
-p :复制时,连同属性 (permission) 也保存不变!
-g :保存源文件的拥有群组;
-o :保存源文件的拥有人;
-D :保存源文件的装置属性 (device)
-t :保存源文件的时间参数;
-I :忽略更新时间 (mtime) 的属性,档案比对上会比较快速;
-z :加上压缩的参数!
-e :使用的信道协议,例如使用 ssh 通道,则 -e ssh
--delete : 如果Server端删除了某一文件,则客户端也相应地把这一文件删除!
-a :相当于 -rlptgoD ,所以这个 -a 是最常用的参数了!
3.2.2.2         rsycn备份测试
将Server 中的/etc/目录下的所有文件备份至Backup-Client下的/usr/backup目录中
[root@Routed-Server backup]# rsync -avIR --delete -e ssh 192.168.2.2:/etc/ /usr/backup

~省略
wrote 35680 bytes  read 35507198 bytes  1822711.69 bytes/sec
total size is 35329916  speedup is 0.99
传输完成
[root@Routed-Server backup]# ls -l
total 8
drwxr-xr-x   82 root     root         8192 Oct 24 10:17 etc
# 完成同步

3.2.3.        将同步写入脚本,并同期性执行
3.2.3.1         写入shell scripts
#!/bin/bash
# For remote data synchronization
rsync -avIR --delete -e ssh 192.168.2.2:/etc/ /usr/backup

3.2.3.2         写入crontab
[root@Routed-Server backup]# vi /etc/crontab
00        0        *        *        *        root        /usr/backup/rsync.sh > /dev/null 2&>1
# 每天0时运行一次

四、        故障解决

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2006-10-26 13:55:37 | 显示全部楼层
单立个帖子..
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表