• rsync安装配置


    rsync安装配置
    yum -y install rsync
    配置rsync

    rsync服务需要三个文件

    rsyncd.conf rsync服务的配置文件

    rsyncd.secrets rsync服务的用户密码保存文件 用户必须为服务器上存在的用户

    rsyncd.motd rsync服务的登陆提示信息

    为了密码的安全 rsyncd.secrets的权限需要修改为600 chmod 0600 rsyncd.secrets

    这几个文件默认不存在 需要自行创建 mkdir -p /etc/rsyncd

    cd /etc/rsyncd

    touch rsyncd.conf

    touch rsyncd.secrets

    touch rsyncd.motd

    chmod 600 /etc/rsyncd/rsyncd.secrets #将rsyncd.secrets这个密码文件的文件属性设为root拥有, 且权限要设为600, 否则无法备份成功!

    设定rsyncd.conf

    vi rsyncd.conf

    pid file = /var/run/rsyncd.pid
    port = 873
    address = 192.168.1.2  #服务器IP
    uid = root
    gid = root
    use chroot = yes
    read only = yes #主读
    hosts allow= 192.168.1.3 192.168.1.4 #允许访问的主机列表
    hosts deny=*
    max connections = 5
    #motd file = /etc/rsyncd.motd
    log format = %t %a %m %f %b
    syslog facility = local3
    timeout = 300

    [video] #要同步的组,名字随便
    path = /home/web/video #同步的目录
    list = no #禁止列出文件
    ignore errors
    auth users = root #执行的用户
    exclude = folder folder1 #排除的目录
    secrets file = /etc/rsyncd/rsyncd.secrets #密码文件,直接从文件读取执行用户的密码,省去输入密码的交互,较多用于计划任务

    保存退出

    启动rsync服务器及防火墙的设置

    启动rsync服务器相当简单,有以下几种方法

    A、--daemon参数方式,是让rsync以服务器模式运行

      #/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf  #--config用于指定rsyncd.conf的位置,如果在/etc下可以不写

    B、xinetd方式

    修改services加入如下内容
    # nano -w /etc/services
    rsync  873/tcp  # rsync
    rsync  873/udp  # rsync
    这一步一般可以不做,通常都有这两行
    设定 /etc/xinetd.d/rsync, 简单例子如下:

      # default: off
      # description: The rsync server is a good addition to am ftp server, as it
      # allows crc checksumming etc.
      service rsync
      {
    disable = no
    socket_type = stream
    wait = no
    user = root
    server = /usr/bin/rsync
    server_args = --daemon
    log_on_failure += USERID
      }

      上述, 主要是要打开rsync這個daemon, 一旦有rsync client要连接時, xinetd会把它转介給 rsyncd(port 873)。然后service xinetd restart, 使上述设定生效.
    rsync服务器和防火墙

      Linux 防火墙是用iptables,所以我们至少在服务器端要让你所定义的rsync 服务器端口通过,客户端上也应该让通过。

      #iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT
      #iptables -L 查看一下防火墙是不是打开了 873端口
     
      通过rsync客户端来同步数据

      A、语法详解
     
      在配置完rsync服务器后,就可以从客户端发出rsync命令来实现各种同步的操作。rsync有很多功能选项,下面就对介绍一下常用的选项:

      rsync的命令格式可以为:
     
      1. rsync [OPTION]... SRC [SRC]... [USER@]HOSTEST
      2. rsync [OPTION]... [USER@]HOST:SRC DEST
      3. rsync [OPTION]... SRC [SRC]... DEST
      4. rsync [OPTION]... [USER@]HOST::SRC [DEST]
      5. rsync [OPTION]... SRC [SRC]... [USER@]HOST:EST
      6. rsync [OPTION]... rsync://[USER@]HOST[ORT]/SRC [DEST]

      rsync有六种不同的工作模式:

      1. 拷贝本地文件;当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。
      2.使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。
      3.使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式。
      4. 从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。
      5. 从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。
      6. 列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。
     

      rsync中的参数
      -a 以archive模式操作、复制目录、符号连接 相当于-rlptgoD
      -r 是递归
      -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;
      -z 传输时压缩;
      -P 传输进度;
      -v 传输时的进度等信息,和-P有点关系,自己试试。可以看文档;
      -e ssh的参数建立起加密的连接。
      -u只进行更新,防止本地新文件被重写,注意两者机器的时钟的同时
      --progress是指显示出详细的进度情况
      --delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致
      --password-file=/password/path/file来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。

      B、一些实例

      B1、列出rsync 服务器上的所提供的同步内容;

      首先:我们看看rsync服务器上提供了哪些可用的数据源
      # rsync --list-only root@192.168.1.3::
     
      B2、rsync客户端同步数据;
      # rsync -avzP root@192.168.1.3::video video
    注: 这 个命令的意思就是说,用root用户登录到服务器上,把video数据,同步到本地当前目录video上。当然本地的目录是可以你自己定义的。
    如果当你在客户端上当前操作的目录下没有video这个目录时,系统会自动为你创建一个;当存在video这个目录中,你要注意它 的写权限。

    B3、ssh方式从远程服务器同步数据:
    rsync -au  -e ssh root@192.168.1.2:/home/web/test/public/upload /home/web/test/public/

    如果ssh端口不是默认的22端口,使用以下参数

    rsync -au  -e 'ssh -p 1234' root@192.168.1.2:/home/web/test/public/upload /home/web/test/public/
    设定密码文件
    # touch /etc/rsyncd/syncd.secrets
    # chmod 600 /etc/rsyncd/rsyncd.secrets
    # echo "123456"> /etc/rsyncd/rsyncd.secrets 注:rsync服务器执行用户密码
    #rsync -avzP --password-file=/etc/rsyncd/rsyncd.secrets root@192.168.1.3::video video

  • 相关阅读:
    第六周
    第五周(实验报告)
    第四周(实验报告)
    第三周(实验报告)
    Java第二周学习总结
    第一周
    2019课程总结
    第十四周课程总结
    第十三周总结
    第十二周总结
  • 原文地址:https://www.cnblogs.com/latma/p/3810983.html
Copyright © 2020-2023  润新知