• Rsync服务的配置与使用


    Rsync是Linux平台下的主机与主机间的数据同步工具,相比较FTP,Rsync可以进行差异传输,效率较高。

    官网:https://rsync.samba.org/

    简介

    Rsync分为服务端和客户端两部分:服务端需要以deamon方式运行rsync服务,并同时启动xinetd服务,默认端口为873;客户端则用于发起rsync连接,安装rsync即可。客户端会向服务端发起连接,并向提供rsync服务内建的用户名和密码,服务器验证通过后,即开始文件传输,传输过程中,会先对比文件的大小、属性、权限、MD5值等信息,如果两端文件不一致,则按要求同步文件的区别块。

    服务端搭建

    步骤一、安装

    大多数Linux操作系统都自带了rsync服务,可以通过命令查看:

    rpm -qa|grep rsync
    

    如果想升级或安装,可以使用:

    yum -y install rsync
    

    或使用源码包

    wget https://download.samba.org/pub/rsync/rsync-3.2.3.tar.gz
    tar -xzf rsync-3.2.3.tar.gz
    cd rsync-3.2.3
    ./configure --prefix=/usr/local/rsyncd
    make && make install
    

    步骤二、配置

    确认安装完成后,在/etc目录下为rsync服务创建rsyncd文件夹,并在其下分别创建三个文件rsyncd.confrsyncd.secredtsrsyncd.motd

    mkdir /etc/rsyncd
    touch /etc/rsyncd/rsyncd.conf #服务器配置文件
    touch /etc/rsyncd/rsyncd.secrets #用户名密码文件
    touch /etc/rsyncd/rsyncd.motd #欢迎文件
    chmod 600 /etc/rsyncd/rsyncd.secrets #欢迎文件,权限需要赋值为600
    

    rsyncd.conf

    # GLOBAL OPTIONS
    # 欢迎文件配置(可省略)
    #motd file=/etc/rsyncd.motd
    # 是否开启日志传输功能(可省略)
    transfer logging=yes
    # 日志文件地址(可省略)
    log file=/var/1og/rsyncd.1og
    # 进程文件配置
    pid file=/var/run/rsyncd.pid
    # 锁文件配置
    lock file=/var/lock/rsync.lock
    # 监听端口号配置(可省略)
    port=873
    # 服务器监听地址配置(可省略)
    address=192.168.150.128
    # 守护进程所属的uid,默认是nobody,可能会碰到文件或目录权限问题
    uid=root
    # 守护进程的gid
    gid=root
    #设置user chroot为yes后,rsync会首先进行chroot设置,将根映射到path参数路径下,对客户端而言,系统的根就是path参数所指定的路径。但这样做需要root权限,并且在同步符号连
    接资料时仅会同步名称,而内容将不会同步。
    use chroot=no
    # 是否允许客户端上传数据。
    read only=no
    # 设置并发连接数,0代表无限制。超出并发数后,如果依然有客户端连接请求,则将会收到稍后重试的提示消息。
    max connections=10
    # 模块,Rsync通过模块定义同步的目录,模块以[name]的形式定义,这与Samba定义共享目录是一样的效果。在Rsync中也可以定义多个模块
    [common]
    # comment定义注释说明字串
    comment=Web content
    # 同步目录的真实路径通过path指定
    path=/common
    # 忽略一些IO错误(可忽略)
    ignore errors
    # exclude可以指定例外的目录,即将common目录下的某个目录设置为不同步数据(可忽略)
    # exclude=test/
    # 设置允许连接服务器的账户,账户可以是系统中不存在的用户
    auth users=yufu,jango
    # 设置密码验证文件名称,注意该文件的权限要求为只读,建议权限为600,与auth user配套使用
    secrets file=/etc/rsyncd.secrets
    # 设置允许哪些主机可以同步数据,可以是单个IP,也可以是网段,多个IP与网段之间使用空格分隔(可省略)
    hosts allow=192.168.150.0/255.255.255.0
    # 设置拒绝所有(除hosts allow定义的主机外)
    hosts deny=*
    #客户端请求显示模块列表时,本模块名称是否显示,默认为yes
    list=yes
    

    rsyncd.secrets

    # 格式【用户名:密码】
    yufu:123456
    

    rsyncd.motd

    echo "hi"> /etc/rsyncd/rsyncd.motd
    

    步骤三、重启服务端

    /usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
    

    客户端使用

    客户端需要安装rsync服务,安装步骤参考服务端搭建的步骤一,所以直接进入同步环节,假设服务器端IP为192.168.150.128,客户端IP为192.168.32.129,则:

    1. 客户端192.168.150.129从服务端192.168.150.128同步/data到本地目录/template
    rsync -avz rsyncuser@192.168.150.128::data /template #这种方式会将data文件夹复制到/template下
    rsync -avz rsyncuser@192.168.150.128::data/ /template #这种方式只会将data文件夹中的内容复制到/template下,不会创建data目录
    
    1. 客户端192.168.32.129同步/template到服务端192.168.150.128的/data
    rsync -avz /template/ rsyncuser@192.168.150.128::data
    

    在使用时,我们发现每次都需要输入密码,为此,我们可以创建密码文件rsync.pass文件,将密码存进去,这样通过--password-file参数,就可以省去每次都输入密码的麻烦:

    echo "123456">rsync.pass
    chmod 600 rsync.pass
    rsync -avz --password-file=rsync.pass yufu@192.168.150.128::data /template
    
  • 相关阅读:
    【万里征程——Windows App开发】使用华丽丽的字体
    【万里征程——Windows App开发】SemanticZoom视图切换
    用Alt码打出Pi以及各式各样的符号
    3行代码列出硬盘上所有文件及文件夹
    【万里征程——Windows App开发】ListView&GridView之分组
    【万里征程——Windows App开发】ListView&GridView之添加数据
    从头认识js-js中的对象
    js中如何判断属性是对象实例中的属性还是原型中的属性
    从头认识js-HTML中使用JavaScript
    从头认识js-js的发展历史
  • 原文地址:https://www.cnblogs.com/krockey/p/15039745.html
Copyright © 2020-2023  润新知