rsync服务器的配置


安装

配置

修改以下配置文件,若不存在则新增即可.
  • 修改/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/

© Song 2015 - 2024