• ubuntu 18.04 rsync 命令使用 服务端配置


    1. rsync的主要作用

    rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。

    但是在使用就会发现rsync有很多种命令格式,往往会造成误解。

    测试环境Ubuntu 1804。


    2. rsync的命令格式和工作模式

    2.1. 语法

    rsync [OPTION]... SRC DEST
    rsync [OPTION]... SRC [USER@]host:DEST
    rsync [OPTION]... [USER@]HOST:SRC DEST
    rsync [OPTION]... [USER@]HOST::SRC DEST
    rsync [OPTION]... SRC [USER@]HOST::DEST
    rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]


    2.2. 工作模式

    对应语法,有六种不同的工作模式:

    2.2.1. 拷贝本地文件

    当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。如:

    rsync -a /data /backup


    2.2.2. 使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器

    当DST路径地址包含单个冒号":"分隔符时启动该模式。如:

    rsync -avz *.c foo:src


    2.2.3. 使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器

    当SRC地址路径包含单个冒号":"分隔符时启动该模式。如:

    rsync -avz foo:src/bar /data

    2.2.4. 从远程rsync服务器中拷贝文件到本地机

    当SRC路径信息包含"::"分隔符时启动该模式。如:

    rsync -av root@192.168.78.192::www /databack

    2.2.5. 从本地机器拷贝文件到远程rsync服务器中

    当DST路径信息包含"::"分隔符时启动该模式。如:

    rsync -av /databack root@192.168.78.192::www

    2.2.6. 列远程机的文件列表

    这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。如:

    rsync -v rsync://192.168.78.192/www


    由上面六种工作模式可以看出,可用通过两种方式与远程机器进行同步:

    • 使用一个远程shell,如rsh,ssh;
    • 通过远程机器的rsync服务进行交互;


    3. rsync服务器搭建

    3.1. 安装

    Ubuntu 1804实际已经默认安装rsync的,只是不是默认启动而已,需要修改/etc/default/rsync:

    RSYNC_ENABLE=true   #false改true


    3.2. 增加配置

    sudo cp /usr/share/doc/rsync/examples/rsyncd.conf /etc

    配置主要选项与意思:

    # sample rsyncd.conf configuration file
    
    # GLOBAL OPTIONS
    
    #motd file=/etc/motd #登录欢迎信息
    #log file=/var/log/rsyncd #日志文件
    # for pid file, do not use /var/run/rsync.pid if
    # you are going to run rsync out of the init.d script.
    pid file=/var/run/rsyncd.pid
    
    #指定rsync发送日志消息给syslog时的消息级别,常见的消息级别是:uth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, security, sys-log, user, uucp, local0, local1, local2, local3,local4, local5, local6和local7。默认值是daemon。
    #syslog facility=daemon
    
    #自定义tcp选项,默认是关闭的
    #socket options=
    
    #以下是模块信息,我们可以创建多个模块
    # MODULE OPTIONS
    
    [ftp]
    
            comment = public archive #模块描述
            path = /var/www/pub #需要同步的路径
            use chroot = yes #默认是yes|true,如果为true,那么在rsync在传输文件以前首先chroot到path参数指定的目录下。这样做的原因是实现额外的安全防护,但是缺点是需要root权限,并且不能备份指向外部的符号连接指向的目录文件。
    #       max connections=10 #最大连接数
            lock file = /var/lock/rsyncd #指定支持max connections参数的锁文件。
    # the default for read only is yes...
            read only = yes #只读选项
            list = yes #客户请求时可用模块时是否列出该模块
            uid = nobody #设定该模块传输文件时守护进程应该具有的uid
            gid = nogroup #设定该模块传输文件时守护进程应具有的gid,此项与uid配合可以确定文件的访问权限
    #       exclude = #用来指定多个由空格隔开的多个模式列表,并将其添加到exclude列表中。这等同于在客户端命令中使用--exclude来指定模式,不过配置文件中指定的exlude模式不会传递给客户端,而仅仅应用于服务器。一个模块只能指定一个exlude选项,但是可以在模式前面使用"-""+"来指定是exclude还是include    #这个我的理解是排除目录中不需同步的文件
    #       exclude from = #可以指定一个包含exclude模式定义的文件名
    #       include = #与exclude相似
    #       include from = #可以指定一个包含include模式定义的文件名
    #       auth users = #该选项指定由空格或逗号分隔的用户名列表,只有这些用户才允许连接该模块。这里的用户和系统用户没有任何关系。如果"auth users"被设置,那么客户端发出对该模块的连接请求以后会被rsync请求challenged进行验证身份这里使用的 challenge/response认证协议。用户的名和密码以明文方式存放在"secrets file"选项指定的文件中。默认情况下无需密码就可以连接模块(也就是匿名方式)
    #       secrets file = /etc/rsyncd.secrets #该文件每行包含一个username:password对,以明文方式存储,只有在auth users被定义时,此选项才生效。同时我们需要将此文件权限设置为0600
            strict modes = yes #该选项指定是否监测密码文件的权限,如果该选项值为true那么密码文件只能被rsync服务器运行身份的用户访问,其他任何用户不可以访问该文件。默认值为true
    #       hosts allow = #允许的主机
    #       hosts deny = #拒绝访问的主机
            ignore errors = no #设定rsync服务器在运行delete操作时是否忽略I/O错误
            ignore nonreadable = yes #设定rysnc服务器忽略那些没有访问文件权限的用户
            transfer logging = no #使rsync服务器使用ftp格式的文件来记录下载和上载操作在自己单独的日志中
    #       log format = %t: host %h (%a) %o %f (%l bytes). Total %b bytes. #设定日志格式
            timeout = 600 #超时设置(秒)
            refuse options = checksum dry-run #定义一些不允许客户对该模块使用的命令选项列表
            dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz #告诉rysnc那些文件在传输前不用压缩,默认已设定压缩包不再进行压缩

    如果需要指定账户密码或者配置日志,可以参考:Ubuntu下安装配置rsync  。


    3.3. 启动

    根据自己的需求修改配置后,启动服务:

    sudo systemctl start rsync


    3.4. 开放防火墙

    rsync服务使用的端口是873,如果开了防火墙需要开放:

    sudo ufw allow 873


    4.参考

    (1) rsync命令

    (2) Ubuntu下安装配置rsync

    (完)

  • 相关阅读:
    [运维-安全]CentOS7.0环境下安装kangle和easypanel
    (转)FastDFS文件存储
    使用mybatis-generator-core自动生成代码
    SSM框架中常用的配置文件
    Spring MVC文件上传和下载
    Spring MVC-拦截器
    Spring MVC之JSON数据交互和RESTful的支持
    Spring MVC数据绑定(二)
    Spring MVC数据绑定(一)
    Spring MVC简介
  • 原文地址:https://www.cnblogs.com/harrymore/p/12377918.html
Copyright © 2020-2023  润新知