Chinaunix首页 | 论坛 | 博客
  • 博客访问: 25635
  • 博文数量: 5
  • 博客积分: 1622
  • 博客等级: 上尉
  • 技术积分: 60
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-04 19:42
文章分类

全部博文(5)

文章存档

2010年(5)

分类: LINUX

2010-08-19 22:51:17

1.  测试环境:

OS :        RedHat Enterprise Linux 5.4

Rsync:    version 3.0.7  protocol version 30


2. 安装步骤

有两种方式,RPM或源码安装,我这里把系统自带的RPM卸掉后通过源码安装,

首先去 下载源码

下载得到  rsync-3.0.7.tar.gz 

下面是安装步骤:

tar -zxvf rsync-3.0.7.tar.gz

cd rsync-3.0.7

注:这里你应该习惯性的看README和INSTALL文件(如果有的话),一般的安装步骤

都可以在这两个文件中找到, 下面开始编译三步曲:

./configure --prefix=/usr/local/rsync/

make

make install

为了使用方便,创建一个符号链接或把这个安装路径加入环境变量,我这里所使用的是

符号链接:

ln -s /usr/local/rsync/bin/rsync /usr/local/bin/rsync

到这里已经安装完成。接下来启动服务并验证


3.  启动 rsync

启动方式可以由xinetd或独立方式启动,这里没有依赖xinetd而是采用单独方式启动,在

启动前需要创建一个配置文件,不过这里有一点不明白,安装后为什么需要自己创建

此配置文件?连示例都没(有可能是我没找到,哈哈)。  下面是具体的文件内容:

uid=root   #  传输模块时守护进程应该具有的UID

gid=root  #  传输模块时守护进程应该具有的GID

pid file = /var/run/rsyncd.pid   

lock file = /var/run/rsyncd.lock

log file = /var/run/rsyncd.log    # 日志文件

use chroot = no

max connections = 10    # 最大连接数

[disk1]    # 模块名,此名字必须唯一

path=/disk1

comment=backup disk1

ignore errors

read only=yes     # 只读

list=yes    # 允许显示文件列表

auth users=root  # 授权用户

hosts allow = localhost,192.168.1.104,192.168.1.105   # 允许访问的IP,其他IP全拒绝

secrets file=/etc/root.pass    # 授权用户的密码文件,格式为:user:password

此文件由全局参数和模块参数组成,[disk1]之前全是全局参数,之后(包括disk1)就是

模块参数了。

由于是独立方式启动的,所以需要把rsync加入 /etc/services:

echo "rsync    873/tcp" >> /etc/services

echo "rsync    873/udp" >> /etc/services

开始启动:

rsync --daemon --config=/etc/rsyncd.conf

使用netstat验证是否成功:

tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN      10129/rsync         

tcp        0      0 :::873                      :::*                        LISTEN      10129/rsync  

可以看出服务已经启动,然后就要验证是否能够从服务器同步文件:

[root@taurus software]# rsync -vzrpgu --progress --delete  root@192.168.1.104::disk1 /opt

Password:            #  这里需要你输入密码,密码就是/etc/root.password所对应的密码

receiving incremental file list

aquota.group

        7168 100%    6.84MB/s    0:00:00 (xfer#1, to-check=4/6)

aquota.user

        7168 100%    1.71MB/s    0:00:00 (xfer#2, to-check=3/6)

lost+found/

test/

test1/


sent 105 bytes  received 513 bytes  247.20 bytes/sec

total size is 14336  speedup is 23.20


各个参数的意思就不说了,通过 rsync --help或 google 都能查到。

从结果可以看到共同步了2个文件和3个目录.  不过平常一般都是把它放在 crontab

中去执行的,幸好 rsync有 password-file 选项,这样就免了人工输入密码,具体

用法是在客户端创建一个rsync_passwd(名字随意)文件,内容就是一个密码:

touch rsync_passwd

echo "123456" > rsync_passwd

rsync -vzrpgu --progress --delete --password-file=rsync.pass root@192.168.1.104::disk1 /opt

[root@taurus ~]# rsync -vzrpgu --progress --delete --password-file=rsync.pass root@192.168.1.104::disk1 /opt

receiving incremental file list

aquota.group

        7168 100%    2.28MB/s    0:00:00 (xfer#1, to-check=4/6)

aquota.user

        7168 100%  777.78kB/s    0:00:00 (xfer#2, to-check=3/6)

lost+found/

test/

test1/


sent 105 bytes  received 513 bytes  1236.00 bytes/sec

total size is 14336  speedup is 23.20


这样就可以不用我们输入密码而自动同步文件,之后把这加入crontab 就一切搞定。

上面的客户端密码文件一定要注意格式,里面不能多余空格或空行,不然就会出现如下问题:

@ERROR: auth failed on module disk1

rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]

解决这个问题唯一办法就是注意上面说到这两点,记住password-file的内容只有密码,这点和

服务端有所不同,服务端是 user:password 格式。就因为这个问题害偶google 了近一小时。

阅读(4156) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~