zoukankan      html  css  js  c++  java
  • Linux的rsync 配置,用于服务器之间远程传大量的数据

    【教程主题】:rsync

    【课程录制】: 创E

    【主要内容】

    【1】 rsync介绍

    Rsync(Remote Synchronize) 是一个远程资料同步工具,可通过LAN/WAN快速同步多台主机,Rsync使用所为的“Rsync演算法”来使本地主机和远程主机之间达到同步,这个演算法并不是每次都整份传送,它只传送两台计算机之间所备份的资料不同的部分,因此速度相当快。

    Rsync的优点如下:

    1、可以镜像保存整个目录树和文件系统。

    2、可以很容易的做到保持原来文件的许可权、时间、软链接等。

    3、无须特使许可权即可安装。

    4、拥有优化的流程,文件传输效率高。

    5、可以使用RshSSH等方式来传输文件,当然也可以直接通过Socket连接。

    6、支持匿名传输。

             另外,与SCP相比,传输速度不是一个层次级的。我们在局域网时经常用RsyncSCP传输大量Mysql数据,发现Rsync至少比Scp20倍以上,所以大家如果需要在Linux/Unix服务器之间互传海量资料,Rsync是非常好的选择。

    【2】 rsync服务端方式

    首先检查rsync是否安装:

    rpm –q rsync

    rsync-2.6.8-3.1

    说明rsync已安装,如果提示出现 package rsync is not installed  则说明这个软件报没有安装大家可以使用yum进行安装

    另外,关闭防火墙和SElinux,因为是内网中传输,所以这些没必要

    service iptables stop && chkconfig iptables off 

    setenforce 0

    配置文件/etc/rsyncd.conf。这个文件是自己定义的,并不是系统创建的,当然你也可以叫不同的名字,后面再写上详细注释。

    uid = nobody

    gid = nobody

    user chroot = no

    max connections = 200

    timeout = 600

    pid file = /var/run/rsyncd.pid

    lock file = /var/run/rsyncd.lock

    log file = /var/log/rsyncd.log

    [backup]

    path=/backup/

    ignore errors

    read only = no

    list = no

    hosts allow = 192.168.0.0/255.255.255.0

    auth users = test

    secrets file = /etc/rsyncd.password

    注释:

    uid = nobody

    进行备份的用户,nobody 为任何用户

    gid = nobody 

    进行备份的组,nobody为任意组

    use chroot = no

    如果"use chroot"指定为true,那么rsync在传输文件以前首先chroot到path参数所指定的目录下。这样做的原因是实现额外的安全防护,但是缺点是需要以root权限,并且不能备份指向外部的符号连接所指向的目录文件。默认情况下chroot值为true.但是这个一般不需要,我选择no或false

    list = no

    不允许列清单

    max connections = 200 

    最大连接数

    timeout = 600 

    覆盖客户指定的IP超时时间,也就是说rsync服务器不会永远等待一个崩溃的客户端。

    pidfile = /var/run/rsyncd.pid  

    pid文件的存放位置

    lock file = /var/run/rsync.lock  

    锁文件的存放位置

    log file = /var/log/rsyncd.log   

    日志文件的存放位置

    [backup]  

    这里是认证模块名,即跟samba语法一样,是对外公布的名字

    path = /backup/

    这里是参与同步的目录

    ignore errors  

    可以忽略一些无关的IO错误

    read only = no

    允许可读可写

    list = no

    不允许列清单

    hosts allow = 192.168.1.0/255.255.255.0

    这里跟samba的语法是一样的,只允许192.168.21.0/24的网段进行同步,拒绝其它一切

    auth users = test 

    认证的用户名

    secrets file = /etc/rsyncd.password  

    密码文件存放地址

    注意: 

    1、[backup]  认证模块名和 path = /backup/ 参与同步的目录

    这里的path 大家要记好了,这里不要随便的一设置就直接完事,要知道这里是认证模块的,以后从客户机备份的数据会存储在这里。

    2、auth users = redhat 认证的用户名 

    这个名字是服务器端实实在在存在用户,大家不要直接跟步骤走却忽略了这点。如果服务器端少了这个的话我估计你的数据同步就实现不了,大家要谨记。

    3、path = /backup/ 参与同步的目录

    这个需要稍后自己要在根目录下自己建

    cd /

    mkdir backup

    chmod –R 777 /backup

    echo “test:test” > /etc/rsync.password

    (这里我设置的是用户名和密码一致)

    为了安全起见,我设置他的权限为600

    chmod 600 /etc/rsync.password

    启动配置

    [root@test rsync-3.0.4]# vim /etc/xinetd.d/rsync 

    配置rsync servervi /etc/xinetd.d/rsync
    disable=yes改为no

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


    [root@test home]# /etc/init.d/xinetd restart
    Stopping xinetd:                                           [  OK  ]
    Starting xinetd:                                           [  OK  ]

    如果xinetd没有的话,需要安装一下
    [root@test home]# yum -y install xinetd


      RSYNC服务端启动的两种方法:
    启动rsync服务端(独立启动)
    [root@test home]# /usr/bin/rsync --daemon    on


    启动rsync服务端 (有xinetd超级进程启动)
    [root@test home]# /etc/init.d/xinetd reload

    配置rsync自动启动
    [root@test etc]# chkconfig rsync on
    [root@test etc]# chkconfig rsync --list
    rsync 


    加入rc.local
    在各种操作系统中,rc文件存放位置不尽相同,可以修改使系统启动时把rsync --daemon加载进去。
    [root@test home]# vi /etc/rc.local
    /usr/local/rsync –daemon           #加入一行

    客户端配置:

    echo “test” > /etc/rsyncd.password

    这里仅仅只需要密码,不需要用户了,免得要同步时还要手动互动

    chmod 600 /etc/rsync.password

    测试:下面delete表示删除目标存在而源目录不存在的文件的命令

    rsync -vzrtop --delete /home/ce test@192.168.0.206::backup --password-file=/etc/rsyncd.password

    从服务器上下载文件a:打包,v:详细信息,z压缩

    rsync -avz --password-file=/etc/rsyncd.password test@192.168.0.206::backup /home/

    从本地上传到服务器上去

    rsync -avz --password-file=/etc/rsyncd.password /home test@192.168.0.206::backup

    【3】rsync客户端方式

    常用:rsync -av

    下载:rsync [参数]  远程文件(远程路径)  本地目录  

    上传:rsync [参数]  本地文件              远程目录

    rsync常用参数

    如果不需要交互式的操作,rsync平时也可以像scp那样工作,下列为常用rsync参数。

    例子: rsync -av test@192.168.1.122:/home/test/3.txt .

    表示将服务192.168.1.122/home/test/3.txt文件复制到本客户度的当前目录其中“.”表示当前目录


    -a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD 

    -v --verbose:详细模式输出
    -r --recursive:对子目录以返回模式处理。
    -p --perms:保持文件许可权
    -o --owner:保持文件属主信息
    -g --group:保持文件组信息
    -t --times:保持文件时间信息
    --delete:删除哪些DST中存在而SRC中不存在的文件或目录
    --delete-excluded:同样删除接收端哪些该选项制定排出的文件
    -z --compress:对备份的文件在传输时进行压缩处理
    --exclude=PATTERN:制定排除不需要传输的文件
    --include=PATTERN:制定不排除需要传输的文件
    --exclude-from=FILE:排除FILE中制定模式的文件
    --include-from=FILE:不排除FILE中制定模式匹配的文件

    ----------------------------------------------------------------------

    说明:从理论上将这个是行的通的,因为任何服务器都可以远程连接的,那么只要知道了ip,用户名,密码,就可以进入到服务器,就可以查看服务器中的文件

    这个当然就可以拷贝下来,然后另一台服务器又能登录,所以最原始的就可以将源服务器的文件拷贝到本地,然后上传到另一台服务器,rsync,相当于省掉中间一步

    就是直接将源服务器的文件传到另一台服务器,当然需要配置下,有两种方式

    第一种:服务器方式,需要配置一台服务器作为服务器(假装看做服务器,其实两个都是服务器),然后配置一个bakup文件,配置一个用户名和密码,专门用来被远程连接

    如果说的专业点,backup就是所谓的认证模块,用户名和密码文件就是所谓的认证文件,然后客户端,也需要配置一个密钥就是源服务器对应的用户的密码,然后在传输的过程

    中就设置下用户,ip参数,就相当于源服务器的用户名,密码,ip都有了,所以就可以传输了

  • 相关阅读:
    再谈TextField
    IOS-TextField知多少
    leftBarButtonItems
    LeftBarButtonItems,定制导航栏返回按钮
    Apple Mach-O Linker (id) Error "_OBJC_CLASS...错误解决办法 Apple Mach-O Linker (id) Error "_OBJC_CLASS...错误解决办法
    Unrecognized Selector Sent to Instance问题之诱敌深入关门打狗解决办法
    UNRECOGNIZED SELECTOR SENT TO INSTANCE 问题快速定位的方法
    Present ViewController,模态详解
    UILABEL AUTOLAYOUT自动换行 版本区别
    iOS自动布局解决警告Automatic Preferred Max Layout Width is not available on iOS versions prior to 8.0
  • 原文地址:https://www.cnblogs.com/sengling/p/5281481.html
Copyright © 2011-2022 走看看