rsync服务器的配置

安装

  • Linux

参考 rsync的基本概念、命令、和使用(http://jiangyuesong.me/2018/01/09/rsync) 安装rsync

apt-get install xinetd 安装xinetd

  • Windows参考

配置

一下配置文件,若不存在则新增即可.

  • 修改/etc/default/rsync
RSYNC_ENABLE=inted   #false改true或者inted
  • 修改/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
}
  • 修改/etc/rsyncd.conf

修改/etc/rsyncd.conf,主要包括账号密码文件路径、同步路径等内容,分为全局配置和模块配置,每个需要同步的文件夹可以配置为一个模块。可以使用rsync –daemon的方式运行守护进程,这里使用xinetd

#全局配置
#  = 后面的值可根据自己的实际情况更改
#  pid file 守护进程pid文件
#  port 守护进程监听端口,可更改,由xinetd允许rsyncd时忽略此参数
#  address 守护进程监听ip,由xinetd允许rsyncd时忽略此参数
#  我们使用xinetd 运行守护进程
pid file = /usr/local/var/run/rsyncd.pid
# port = 873
# address = 192.168.1.2
#rsyncd 守护进程运行系统用户全局配置,也可在具体的块中独立配置,
uid = root
gid = root
#允许 chroot,提升安全性,客户端连接模块,首先chroot到模块path参数指定的目录下
#chroot为yes时必须使用root权限,且不能备份path路径外的链接文件
use chroot = no
#只读
read only = no
#只写
write only = no
#允许访问rsyncd服务的ip,ip端或者单独ip之间使用空格隔开
hosts allow = *
#不允许访问rsyncd服务的ip,*是全部(不涵盖在hosts allow中声明的ip,注意和hosts allow的先后顺序)
#hosts deny = *
#客户端最大连接数
max connections = 5
#欢迎文件路径,可选的,在客户端链接成功后会显示欢迎信息
#motd file = /etc/rsyncd/rsyncd.motd
#日志相关
#  log file 指定rsync发送消息日志文件,而不是发送给syslog,如果不填这个参数默认发送给syslog
#  transfer logging 是否记录传输文件日志
#  log format 日志文件格式,格式参数请google
#  syslog facility rsync发送消息给syslog时的消息级别,
#  timeout连接超时时间
log file = /usr/local/logs/rsyncd.log
transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300

#模块 模块名称必须使用[]环绕,客户端要访问data1,则地址应该是data1user@address::data1
[data1]
#模块根目录,必须指定
path=/home/test
#是否允许列出模块里的内容
list=yes
#忽略错误
#ignore errors
#模块验证用户名称,可使用空格或者逗号隔开多个用户名
auth users = data1user
#模块验证密码文件 可放在全局配置里
secrets file=/etc/rsyncd.secrets
#注释
comment = some description about this moudle
#排除目录,多个之间使用空格隔开
#exclude = test1/ test2/
  • 配置密码文件

新建密码文件/etc/rsyncd.secrets(与上述文件的secret file一致)

data1user:password
  • 配置文件授权

密码文件必须赋予600的权限

chmod 600 /etc/rsyncd.*
  • 启动服务
#重启守护进程
service xinted restart
#检查是否启动成功
netstat -an | grep 873
#显示 tcp6       0      0 :::873                  :::*                    LISTEN

使用

根据上述配置,可以本地建立密码文件pwd.secrets(随便命名),内容为

password
  • 获取远程文件
rsync -avz --password-file=pwd.secrets data1user@xxx.xx.xx.xx::data1 /home/data

上述代码将远程的/home/test/中的内容拷贝至/home/data中,注意:服务器配置文件中path无论是否以/结尾,都不会复制目录本身,只会复制文件夹内的内容

模块名可以加子目录,data1/subdir 可以复制整个subdir目录,subdir必须是位于配置文件的path指定的目录中

  • 传输本地文件到远程机器
rsync -avz --password-file=pwd.secrets /home/data/ data1user@xxx.xx.xx.xx::data1

本地的data内的文件被传输到/home/test/中。若本地路径写为/home/data没有/,则整个data目录上传至/home/test/

  • 列出远程文件
rsync -v --password-file=pwd.secrets rsync://data1user@xxx.xx.xx.xx/data1/

or

rsync -v --password-file=pwd.secrets data1user@xxx.xx.xx.xx::data1/
标签:Rsync 发布于:2019-10-30 12:13:28