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等技术。

  • 相关阅读:
    git创建一个空的版本库
    程序后台服务启动,MongoDB未启动(启动较慢)/(关机重启情况下)。
    启动客户端后台服务
    客户端后台服务(已注册机器)RabbitMQ未消费的情况
    MongoDB数据重复解决方案
    github中新建一个branch(分支)
    MES-后台服务卸载
    linux 第八章 高级键盘
    socketserver
    jmeter发送邮件的模板
  • 原文地址:https://www.cnblogs.com/minseo/p/8080426.html
Copyright © 2011-2022 走看看