【基础应用】rsync简单使用

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)为所有者。

wKioL1Nsj6nDMeLlAAL7fR4fKNs783.jpg

执行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同步命令。


暂时没有这个需求,所以不去折腾了。


你可能感兴趣的:(rsync)