Centos5.9下搭建rsync服务器

一.什么是rsync

rsync(remote sync)是Linux系统的文件同步和数据传输工具。rsync使用“rsync算法”来使本地主机和远程主机之间的文件达到同步,它并不是每次都整份传送,rsync只传输源文件和目标文件之间不一致的部分,因此速度相当快。

rsync有如下特性:

○可以镜像保存整个目录树和文件系统。

○可以增量同步数据,文件传输效率高。

○可以保持原有文件的权限、时间等属性。

○加密传输数据,保证了数据的安全性。

○可以使用scp、ssh等方式传输文件,当然也可以直接通过socket连接。

○支持匿名传输。

二.rsync服务器的配置

系统环境:Centos 5.9

客户端IP地址:10.224.252.122

服务器IP地址:10.224.252.123

定义rsync的配置文件

rsync的配置文件为/etc/rsyncd.conf,在安装完rsync时,默认是没有这个配置文件的,需要手动建立。rsyncd.conf参数包括全局参数和模块参数,模块参数定义了需要进行同步的目录,在配置文件中可以定义多个模块。配置文件的内容如下:

[root@localhost ~]# cat /etc/rsyncd.conf
uid=nobody
gid=nobody
user chroot=no
max connections=100
timeout=600
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
log file=/var/log/rsyncd.log
[src]
path=/usr/local/src
comment=source
ignore errors
read only=no
list=no
hosts allow=10.224.252.0/255.255.255.0
auth users=jack
secrets file=/etc/rsyncd.passwd

配置文件的选项含义如下:

uid=nobody,gid=nobody

指定进行备份操作的用户和用户组

user chroot=no

在rsyncc传输文件之前,不会chroot到path参数所指定的目录

max connections

指定rsync服务器的最大连接数

timeout

指定客户端的超时时间

pid file

指定rsync守护进程对应的pid文件路径

lock file

指定rsync服务器锁文件的位置

log file

指定rsync服务器日志文件的位置

[src]

定义一个模块的开始,src是模块的名称

path

指定需要同步目录的路径,这里指定的目录为/usr/local/src

comment

模块的描述信息

ignore errors

忽略一些无关的IO错误

read only=no

允许可读写

list=no

不允许列出目录

host allow

指定允许连接rsync服务器的客户端

auth users

指定进行认证的用户名

secrets file

指定密码文件的存放路径

②配置rsync服务器的密码文件

[root@localhost ~]# echo "jack:jack" > /etc/rsyncd.passwd
[root@localhost ~]# chmod 600 /etc/rsyncd.passwd

③开启rsync服务

编辑/etc/xinetd.d/rsync文件,将“disable=yes”改为“disable=no”

service rsync
{
disable = no
socket_type     = stream
wait            = no
user            = root
server          = /usr/bin/rsync
server_args     = --daemon
log_on_failure  += USERID
}

重新启动xinetd服务,使rsync服务生效

[root@localhost ~]# service xinetd restart
Stopping xinetd:                                           [  OK  ]
Starting xinetd:                                           [  OK  ]

三.rsync客户端的配置

手动建立密码文件,在客户端只需要输入密码即可

[root@localhost ~]# echo "jack" > /etc/rsyncd.passwd
[root@localhost ~]# chmod 600 /etc/rsyncd.passwd

四.利用rsync同步目录

[root@localhost ~]# rsync -vrztopg --progress /src  [email protected]::src  --password-file=/etc/rsyncd.passwd

在“-vrztopg”选项中,v表示详细模式输出,r表示对子目录以递归形式处理,z表示对备份文件在传输时进行压缩处理,t表示保持备份文件的时间信息,o表示保持备份文件的属主信息,p保持备份文件的权限信息,g表示保持备份文件的属组信息;“--progress”表示备份的过程;“--password-file”指定密码文件的位置。

查看rsync服务器上文件的同步情况

[root@localhost ~]# ls -l /usr/local/src
total 4
drwxr-xr-x 2 nobody nobody 4096 Nov 30 10:08 src

将以上/src替换为/src/,我们看下会有什么区别?

[root@localhost ~]# rsync -vrztopg --progress /src/  [email protected]::src  --password-file=/etc/rsyncd.passwd

查看rsync服务器上文件的同步情况

[root@localhost ~]# ls -l /usr/local/src/
total 50804
-rw-r--r-- 1 nobody nobody   106049 Nov 30 10:08 eaccelerator-0.9.6.1.tar.bz2
-rw-r--r-- 1 nobody nobody  6125771 Nov 30 10:06 httpd-2.2.8.tar.gz
-rw-r--r-- 1 nobody nobody    68056 Nov 30 10:08 ImageMagick.tar.gz
-rw-r--r-- 1 nobody nobody    86976 Nov 30 10:08 imagick-2.3.0.tgz
-rw-r--r-- 1 nobody nobody  4984397 Nov 30 10:08 libiconv-1.14.tar.gz
-rw-r--r-- 1 nobody nobody  1335178 Nov 30 10:08 libmcrypt-2.5.8.tar.gz
-rw-r--r-- 1 nobody nobody   471915 Nov 30 10:07 mcrypt-2.6.8.tar.gz
-rw-r--r-- 1 nobody nobody    35981 Nov 30 10:08 memcache-2.2.5.tgz
-rw-r--r-- 1 nobody nobody   931437 Nov 30 10:08 mhash-0.9.9.9.tar.gz
-rw-r--r-- 1 nobody nobody 23817441 Nov 30 10:05 mysql-5.1.47.tar.gz
-rw-r--r-- 1 nobody nobody   645826 Nov 30 10:05 nginx-0.8.46.tar.gz
-rw-r--r-- 1 nobody nobody  1285776 Nov 30 10:05 pcre-8.10.tar.gz
-rw-r--r-- 1 nobody nobody    14778 Nov 30 10:08 PDO_MYSQL-1.0.2.tgz
-rw-r--r-- 1 nobody nobody   201339 Nov 30 10:06 php-5.2.14-fpm-0.5.14.diff.gz
-rw-r--r-- 1 nobody nobody 11783970 Nov 30 10:06 php-5.2.14.tar.gz

总结一下,如果源目录的末尾没有斜杠,就将指定的源目录复制到指定的目标目录中;如果源目录的末尾有斜杠,就会把指定的源目录中的内容复制到目标目录中,而不复制目录本身。目标目录的斜杠没有任何作用。

你可能感兴趣的:(rsync,centos5.9)