• Rsync 服务器搭建


    Rsync简介

     rsync 是一个 Unix 系统下的文件同步和传输工具。

    它具备以下特性:

    1. 能更新整个目录和树和文件系统

    2. 有选择性的保持符号链链、硬链接、文件属于、权限、设备以及时间

    3. 对于安装来说,无任何特殊权限要求

    4. 对于多个文件来说,内部流水线减少文件等待的延时

    5. 能用 rsh、ssh 或直接端口做为传输入端口

    6. 支持匿名 rsync 同步文件,是理想的镜像工具;

    Rsync服务器是指以deamon方式运行rsync服务的服务器,需要打开rsync deamon和启动xinetd服务。默认端口873。

    Rsync客户端是发起rsync连接的服务器,安装rsync即可。

    Rsync工作场景

    Rsync客户端发起连接后,Rsync服务器会检查Rsync客户端提交Rsync服务器内建的户名和密码是否正确,如果通过认证检测,则开始文件传输,传输的过程是按要求先比对文件的大小、属性、权限、MD5值等信息,如果两端文件信息不一致,则按要求同步文件的区别块。

    以下以备份rsync服务器的/usr/local/tomcat6/web 目录为例进行部署。

    Rsync服务器架设简单,多数发行版本unix或者linux操作系统甚至默认都安装了rsync

    全局配置文件 /etc/rsyncd.conf  有时候安装后没有此文件不必惊慌,自己创建一个。默认安装的也可能不存在该文件。

    Rsync服务器搭建步骤:

    1,安装rsync软件(略)

    2,开启rsync deamon的xinetd服务

    #chkconfig xinetd on     打开了xinetd的启动项(输入命令,如果系统不报错即可)

    #chkconfig rsync on      打开rsync的启动项(输入命令,如果系统不报错即可)

    #vi /etc/xinetd.d/rsync  检查配置文件是否正确

    大致检查下,文件内容如下:

    # default: off

    # description: The rsync server is a good addition

    to an 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

    }

    3,配置rsync

    #vi /etc/rsyncd.conf      设置rsync配置文件(新建文件)

    添加以下内容

    uid=nobody

    gid=nobody

    max connetctions=4

    use chroot=no

    log file=/var/log/rsyncd.log

    transfer logging=yes

    log format=%t %a %m %f %b

    pid file=/var/run/rsyncd.pid

    lock file=/var/run/rsyncd.lock

    #auth users=root

    secrets file=/etc/rsyncd.pwd

    [web]

    path=/usr/local/tomcat6/web

    comment=backup web

    ignore errors

    read only=yes

    list=no

    auth users=cms

    secrets file=/etc/rsyncd.pwd

    配置说明:

    uid=nobody

    gid=nobody

    uid 和 gid是系统内建用户,必须存在于系统/etc/passwd文件中。这里设置了最小权限

    max connetctions=4

    max connections是客户端同时连接数,为了限制多线程同步的。

    use chroot=no

    不使用chroot。如果使用chroot,同步时候需要root权限,另外对符号链接文件, 将会排除在外。所以我们不使用chroot。

    secrets file=/etc/rsyncd.pwd定义密码文件rsyncd.pwd

     

    [web]

    设置备份任务名称为web,下面的都是web备份任务参数设置,一直到另一个[]截止。我们可以创建多个备份任务。

    path=/usr/local/tomcat6/web定义需要备份目录

    comment=backup web定义显示说明,备份web目录

    ignore errors 忽略同步中出现的错误

    read only=yes定义访问方式为只读

    list=no  定义了Rsync客户端是不可以列出目录结构

    auth users=cms 定义了客户端备份web项目的用户,这个用户是rsync内建用户与rsync服务器和客户端系统用户无关

     

    4,设置rsync内建用户和密码

    #echo "cms:cmscms" >> /etc/rsyncd.pwd

    这里我们设置rsync内建用户cms,密码cmscms

    修改密码文件执行权限

    #chmod 600 /etc/rsyncd.pwd

    5,重启rsync服务

    # service xinetd restart  启动服务

    Rsync客户端搭建步骤

    1,安装rsync软件(略)

    2,客户端生成生成验证证文件

    #echo "cmscms" >> /etc/rsyncd.pwd     cmscms是密码

    #chmod 600 /etc/rsyncd.pwd

    3,测试

    使用如下命令测试Rsync客户端是否可以同步Rsync服务端

    #/usr/bin/rsync -vzrtopg --password-file=/etc/rsyncd.pwd --progress --delete-after cms@100.1.1.147::web  /usr/local/tomcat6/web

    /usr/bin/rsync 是rsync可执行文件路径

    -vzrtopg --password-file=/etc/rsyncd.pwd --progress --delete-after 同步参数

    cms@100.1.1.147::web  表示客户端以cms用户进行同步,100.1.1.147是rsync服务器端ip地址,web表示rsync服务器端的@web备份任务。

    /usr/local/tomcat6/web 是客户端存放备份文件的位置。

    rsync参数详解

    v,

    verbose

    详细模式输出

    q,

    quiet

    精简输出模式

    c,

    checksum

    打开校验开关,强制对文件传输进行校验

    a,

    archive

    归档模式,表示以递归方式传输文件,并保持所有文

    件属性,等于rlptgoD

    r,

    recursive

    对子目录以递归模式处理

    R,

    relative

    使用相对路径信息

    rsync foo/bar/foo.c remote:/tmp/

    则在/tmp目录下创建foo.c文件,而如果使用R

    参数:

    rsync R

    foo/bar/foo.c remote:/tmp/

    则会创建文件/tmp/foo/bar/foo.c,也就是会保持完全路径信息。

    b,

    backup

    创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用suffix选项来指定不同的备份文件前缀。

    backupdir

    将备份文件(如~filename)存放在在目录下。

    suffix=

    SUFFIX 定义备份文件前缀

    u,

    update

    仅仅进行更新,也就是跳过所有已经存在于DST,并

    且文件时间晚于要备份的文件。(不覆盖更新的文件)

    l,

    links

    保留软链结

    L,

    copylinks

    想对待常规文件一样处理软链结

    copyunsafelinks

    仅仅拷贝指向SRC路径目录树以外的链结

    safelinks

    忽略指向SRC路径目录树以外的链结

    H,

    hardlinks

    保留硬链结

    p,

    perms

    保持文件权限

    o,

    owner

    保持文件属主信息

    g,

    group

    保持文件属组信息

    D,

    devices

    保持设备文件信息

    t,

    times

    保持文件时间信息

    S,

    sparse

    对稀疏文件进行特殊处理以节省DST的空间

    n,

    dryrun

    现实哪些文件将被传输

    W,

    wholefile

    拷贝文件,不进行增量检测

    x,

    onefilesystem

    不要跨越文件系统边界

    B,

    blocksize=

    SIZE 检验算法使用的块尺寸,默认是700字节

    e,

    rsh=

    COMMAND 指定替代rsh的shell程序

    rsyncpath=

    PATH 指定远程服务器上的rsync命令所在路径信息

    C,

    cvsexclude

    使用和CVS一样的方法自动忽略文件,用来排

    除那些不希望传输的文件

    existing

    仅仅更新那些已经存在于DST的文件,而不备份那些新

    创建的文件

    delete

    删除那些DST中SRC没有的文件

    deleteexcluded

    同样删除接收端那些被该选项指定排除的文件

    deleteafter

    传输结束以后再删除

    ignoreerrors

    及时出现IO错误也进行删除

    maxdelete=

    NUM 最多删除NUM个文件

    partial

    保留那些因故没有完全传输的文件,以是加快随后的再次传输

    force

    强制删除目录,即使不为空

    numericids

    不将数字的用户和组ID匹配为用户名和组名

    timeout=

    TIME IP超时时间,单位为秒

    I,

    ignoretimes

    不跳过那些有同样的时间和长度的文件

    sizeonly

    当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间

    modifywindow=

    NUM 决定文件是否时间相同时使用的时间戳窗口,

    默认为0

    T

    tempdir=

    DIR 在DIR中创建临时文件

    comparedest=

    DIR 同样比较DIR中的文件来决定是否需要备份

    P

    等同于 partial

    progress

    显示备份过程

    z,

    compress

    对备份的文件在传输时进行压缩处理

    exclude=

    PATTERN 指定排除不需要传输的文件模式

    include=

    PATTERN 指定不排除而需要传输的文件模式

    excludefrom=

    FILE 排除FILE中指定模式的文件

    includefrom=

    FILE 不排除FILE指定模式匹配的文件

    version

    打印版本信息

    address

    绑定到特定的地址

    config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf

    文件

    port=

    PORT 指定其他的rsync服务端口

    blockingio

    对远程shell使用阻塞IO

    stats

    给出某些文件的传输状态

    progress

    在传输时现实传输过程

    logformat=

    FORMAT 指定日志文件格式

    passwordfile=FILE 从FILE中得到密码

    bwlimit=KBPS 限制I/O带宽,KBytes per second

    h,

    help

    显示帮助信息

  • 相关阅读:
    JavaScript基础知识-标识符
    free命令常用参数详解及常用内存工具介绍
    GO语言的进阶之路-初探GO语言
    HTML&CSS基础-字体的其它样式
    HTML&CSS基础-字体的分类
    HTML&CSS基础-字体的样式
    python运维常用相关模块
    HTML&CSS基础-颜色的单位表示方法
    HTML&CSS基础-长度单位
    HTML&CSS基础-定义列表
  • 原文地址:https://www.cnblogs.com/canphp/p/3907620.html
Copyright © 2020-2023  润新知