搭建rsyncd服务
阅读原文时间:2023年10月20日阅读:12

rsync常用来做文件传输和同步。本文示例中客户端通过rsync同步服务端的/home/tmp目录到本地(不是将客户端的文件同步到服务端)。

IP

系统版本

rsync版本

说明

192.168.0.10

CentOS 7.9

3.1.2

服务端

192.168.0.11

CentOS 7.9

3.1.2

客户端

  1. 安装相关包

    yum install -y rsync xinetd

  2. 编辑服务配置文件:/etc/xinetd.d/rsync。一般不需要修改什么内容。

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

  3. 编辑 /etc/rsyncd.conf。因为是客户端同步服务端到本地,所以服务端开启只读。如果需要客户端同步本地到服务端,则read_only的值应该是false

    uid = root
    gid = root
    use chroot = no
    max connections = 4
    strict modes = yes
    port = 873

    [tmptest]
    path = /home/tmp/
    ignore errors
    read only = yes
    list = no
    secrets file = /etc/rsync.pass
    hosts allow = 192.168.0.0/24
    hosts deny = 0.0.0.0/0
    pid file = /var/run/rsyncd.pid
    lock file =/var/run/rsync.lock
    log file = /var/log/rsyncd.log

  4. 创建用户密码文件 /etc/rsync.pass。冒号前面是rsync认证用户,不是系统用户。冒号后面是密码

    echo "rsync:123456" > /etc/rsync.pass

  5. 修改权限

    chown root:root /etc/rsync.pass
    chmod 600 /etc/rsync.pass

  6. 编辑接入信息文件 /etc/rsyncd.motd

    Welcome to use the rsync services!

  7. 启动

    systemctl restart xinetd
    systemctl restart rsyncd

  8. 安装rsync

    yum install -y rsync

  9. 创建配置文件,不需要写内容

    touch /etc/rsyncd.conf

  10. 创建密码文件

    echo "123456" > /etc/rsync.pass
    chmod 600 /etc/rsync.pass

  11. 传输测试。将服务端的/home/tmp目录同步到本地当前目录。

    rsync -avP rsync@192.168.0.10::tmptest . --password-file=/etc/rsync.pass

如果服务端的read_only非yes,则可以从客户端传输文件到服务端

rsync -avP test.md rsync@192.168.0.10::tmptest --password-file=/etc/rsync.pass
  • 服务端需要关闭selinux,否则可能会出现类似以下的报错

    rsync: link_stat "test.txt" (in tmptest) failed: Permission denied (13)

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章