rsync官网:http://rsync.samba.org/
rsync配置文件说明:http://rsync.samba.org/ftp/rsync/rsyncd.conf.html
rsync全称remote synchronize,是一个远程数据同步工具。本节以守护进程方式配置rsync。
Linux配置rsync:
系统默认已安装了
[root@nsmaster /]# rpm -qa | grep rsync
rsync-3.0.6-9.el6_4.1.x86_64
配置/etc/rsyncd.con文件,默认没有这个文件,需要手动创建,例子如下:
[root@nsmaster etc]# vi rsyncd.conf log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock max connections = 100 use chroot = no uid = rsync gid = rsync ignore errors list = no [work] path = /hxw168/ read only = no auth users = hxw secrets file = /etc/rsyncd.passwd [huang] path = /hxw168/huang/ read only = no hosts allow = 192.168.198.1 hosts deny = *
创建用户:
useradd rsync -s /sbin/nologin �CM
mkdir /hxw168
chown -R rsync.rsync /hxw168
服务端密码文件:
echo "hxw:passwd" > /etc/rsyncd.passwd
用户:密码
客户端密码文件:
echo “passwd” > /etc/rsyncd.passwd
客户机不需要用户,只需密码。客户端与服务端的密码要一致。
把密码文件的权限都改成600
chmod 600 /et c/rsyncd.passwd
注:strict modes
该选项指定是否监测密码文件的权限,如果该选项值为true那么密码文件只能被rsync服务器运行身份的用户访问,其他任何用户不可以访问该文件。默认值为true。
1、启动做服务端的rsync
A)安装xinetd,修改/etc/xinetd.d/rsync文件,把disable=yes改成no
# default: off # description: The rsync server is a good addition to an ftp server, as it \ # allows crc checksumming etc. service rsync { disable = yes flags = IPv6 socket_type = stream wait = no user = root server = /usr/bin/rsync server_args = --daemon log_on_failure += USERID } ~
chkconfig xinetd on
service xinetd start
rsync使用873端口
[root@nsmaster /]# lsof -i:873
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
xinetd 2641 root 5u IPv6 22772 0t0 TCP *:rsync (LISTEN)
B) 使用rsync --daemon启动rsync服务进程
[root@nsmaster /]# lsof -i:873
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rsync 2736 root 3u IPv4 25724 0t0 TCP *:rsync (LISTEN)
rsync 2736 root 5u IPv6 25725 0t0 TCP *:rsync (LISTEN)
这里用的是rsync --daemon启动rsync。
2、使用rsync上传文件或下载文件
客户端使用windows系统,安装cygwin,在c盘下创建a.txt存放密码:passwd(和服务端一样)
使用模块语法。由于使用cygwin,c盘表示:/cygdrive/c/
上传命令:
rsync -avz /cygdrive/d/xs [email protected]::work --password-file=/cygdrive/c/a.txt
下载命令:
rsync -avz [email protected]::work /cygdrive/d/xs --password-file=/cygdrive/c/a.txt
执行后,提示密码文件有问题。
C:\>rsync -avz /cygdrive/d/[email protected]::work --password-file=/cygdrive/c/a.txt
ERROR: password file must not beother-accessible
rsync error: syntax or usage error (code 1)at /home/lapo/package/rsync-3.0.9-1/
src/rsync-3.0.9/authenticate.c(175)[sender=3.0.9]
改变a.txt文件的权限:改成运行rsync的用户(administrator)为所有者。
执行chmod命令
Chmod 600 a.txt
C:\>ls -l a.txt
-rw-------+ 1 Administrator None 6 May 9 12:22 a.txt
C:\>rsync -avz /cygdrive/d/xs [email protected]::work --password-file=/cygdrive/c/a.txt
sending incremental file list
sent 117 bytes received 9 bytes 12.00 bytes/sec
total size is 387234 speedup is 3073.29
C:\>
第二个模块是没有设置密码,使用如下:
下载文件
C:\>rsync -avz rsync://192.168.198.190/huang/ /cygdrive/c/test
receiving incremental file list
./
sent 30 bytes received 56 bytes 7.48 bytes/sec
total size is 0 speedup is 0.00
语法可以看 http://rsync.samba.org/ftp/rsync/rsyncd.conf.html 官方的文档。
3、rsync+inotify方式进行实行同步文件原理,使用inotify可以监控目录下面的文件是否变动,从而执行rsync同步命令。
暂时没有这个需求,所以不去折腾了。