zoukankan      html  css  js  c++  java
  • Rsync文件同步机备份工具使用

    一,Rsync简介

    Rsync是一款开源的,快速的,多功能的,可实现全量及增量的本地或远程数据同步的优秀工具。适用于多种操作平台。

    全称是Remote synchronization 具有可使本地和远程的两台主机之间的数据快速复制同步镜像,这个功能类似于ssh的scp命令,但是又优于scp,rsync可以是一个网络服务(port socket)一个rsync相当于scp,cp,rm但是优于他们的每一个命令。

    在同步数据时,默认情况下,rsync通过其独特的quick check算法,它仅同步大小或者最后修改时间发生变化的文件或者目录。

    rsync特性

    二,rsync的工作场景

    1,两台服务器之间数据同步

    2,对数据服务器做备份或者同步

    三,rsync的工作方式

    1,本地数据备份,相当于cp rm等

    rsync -avz /etc/hosts /tmp/

    保存属性复制文件hosts相当于cp命令

    新建一个目录为空目录/null

    rsync -avz --delete /null/ /tmp/

    /tmp/目录保存和/null/目录一样文件全部删除了,相当于rm

    2,本地局域网主机互相备份 remote shell

    rsync -avzP -e 'ssh -p 22' /tmp/ root@172.16.25.32:/tmp

    从本地推向远端服务器

    rsync -avzP -e 'ssh -p 22' root@172.16.25.32:/tmp/ /tmp/

    从远端服务器拉向本地

    出现错误提示rsync error: error in IPC code因为客户端没有安装ssh客户端使用命令yum -y install openssh-clients安装即可

    -e 表示后面使用ssh传输

    3,通过rsync的daemon

    参数-v详细输出模式

         -z压缩

         -a 归档模式,以递归方式传输文件,并保持所有文件属性

         -r对子目录已递归模式

         -t保持文件时间信息

         -o保持文件属主信息

         -g保持文件属组信息

         -p 保持文件权限

         使用最多就是avz

    四,服务端安装配置rsync

    1,yum安装rsync

      yum -y install rsync

    2,新建配置文件

      /etc/rsyncd.conf

      

    #Rsync server
    #created by liuyueming 09:37 2016-12-29
    ##rsyncd.conf start##
    uid = rsync         #客户端连接过来的用户
    gid = rsync
    use chroot = no     #创建不安全文件漏洞,这里关闭
    max connections = 2000  #最大连接数
    timeout = 600          #超时时间
    pid file = /var/run/rsyncd.pid   #进程号文件,启动后进程号
    lock file = /var/run/rsync.lock   #锁定文件
    log file = /var/log/rsyncd.log    #日志文件
    ignore erros                 #忽略错误
    read only = false              #可读写
    list = false                   #不能看服务端列表
    hosts allow = 172.16.25.0/24    #允许主机
    hosts deny = 0.0.0.0/32        #拒绝主机
    auth users = rsync_backup     #认证用户,为虚拟用户
    secrets file = /etc/rsync.password #认证用户密码文件
    ################################
    [backup]
    comment = backup by liuyueming 09:37 2016-12-29 #描述
    path = /backup

    3,启动

     rsync --daemon

    使用873端口对外进行服务

    4,创建用户

    useradd rsync -s /sbin/nologin -M  #不需要登录,不需要家目录

      id rsync                      #检查创建用户是否成功

    5,创建密码文件

       echo "rsync_backup:oldboy">/etc/rsync.password

       chmod 600 /etc/rsync.password #设置权限只有root可以读写  不设置成600可能会导致服务不能跑

    6,可以加入开机自启动

    echo "rsync --daemon" >>/etc/rc.local

    五,客户端配置

    1,创建本地密码文件

       echo "oldboy" >/etc/rsync.password  #只需要密码,不需要用户名

     chmod 600 /etc/rsync.password       #必须设置为600否则运行rsync出错

    2,同步文件

    本地往rsync服务器推送

    rsync -avz /tmp/ rsync_backup@172.16.25.32::backup --password-file=/etc/rsync.password

    #::后面的backup为服务器端配置文件/etc/rsyncd.conf里面[backup]对应

    本地从rsync服务器拉去

    rsync -avz rsync_backup@172.16.25.32::backup /tmp/ --password-file=/etc/rsync.password

    另外一种写法

    把远端文件拿回本地

    rsync -avz rsync://rsync_backup@172.16.25.32/backup /tmp/ --password-file=/etc/rsync.password  #换一种写法,效果一样

    重启rsync服务

    pkill rsync  #关闭rsync服务

    kill `cat /var/run/rsyncd.pid`

    kill -HUP `cat /var/run/rsyncd.pid`  #加参数平滑杀进程

    kill -USR2 `cat /var/run/rsyncd.pid`  #加参数平滑杀进程

    六,rsync优点

    1,增量备份同步,正常socket(daemon模式),集中备份。最好采用推送而不是抓取方式

    七,rsync缺点

    1,大量小文件同步的时候,比对时间比较长,有时候会导致rsync进程停止

     解决办法:a,打包同步b,drbd(基于文件系统同步复制block)

    2,同步大文件,10G这样的大文件有时也会有问题,中断。未完整同步前,是隐藏文件,同步完成为正常文件。

     

    PS:可以启用定时任务实现实时同步,定时任务最小间隔为1分钟,如果需要完全是实时同步需要使用inotify等技术。

  • 相关阅读:
    The Mac Application Environment 不及格的程序员
    Xcode Plugin: Change Code In Running App Without Restart 不及格的程序员
    The property delegate of CALayer cause Crash. 不及格的程序员
    nil localizedTitle in SKProduct 不及格的程序员
    InApp Purchase 不及格的程序员
    Safari Web Content Guide 不及格的程序员
    在Mac OS X Lion 安装 XCode 3.2 不及格的程序员
    illustrate ARC with graphs 不及格的程序员
    Viewing iPhoneOptimized PNGs 不及格的程序员
    What is the dSYM? 不及格的程序员
  • 原文地址:https://www.cnblogs.com/minseo/p/8080426.html
Copyright © 2011-2022 走看看