• rsync数据备份


    一 基本概念

    1.1 rsync介绍

    rsync,remote synchronize,是一款实现远程同步功能的软件,在同步文件的同时,可以保持原来文件的权限,时间,软硬链接等附加信息。Rsync是使用rsync算法提供一个客户机和远程文件服务器的文件同步的快速算法,而且可以同步ssh的方式来传输

    rsync特点

      可以镜像保存整个目录和文件系统

      可以很容易做到保持原来文件的权限,时间,软硬链接等

      无须特殊权限即可安装

      快速:第一次同步时,rsync会复制全部的内容,但在下一次指挥复制修改过的文件

      压缩传输:rsync在传输数据的过程中可以实行压缩以及解压缩操作,因此可以使用很少的宽带

      安全:可以使用奢scp,ssh等方式来传输文件,当然也可以使用docket连接

      支持匿名传输,以方便进行网站镜像

      选择性保持:符号链接,硬链接,文件属性,权限。时间等

    1.2  rsync与scp比较

      scp无法大备份大量数据,类似windows的复制

      rsync是变量复制,边统计,边比较

    1.3 常见的备份类型

      完整备份,差异备份,增量备份

      完成备份:每次别分都是从备份源将所有的文件或者目录备份到本地

      差量备份:备份上次完全备份以后有变化的数据,他针对的是上次的完全备份,他备份过程中部清除存档

      增量备份:备份上次备份以后有变化的数据,会清除存档属性

    1.4 运行模式和端口

      采用C/S模式,点到点的传输,端口873

      发起端:负责发起rsync同步操作的客户机叫做发端,通知服务器要备份数据

      备份源:负责相应的客户机,rsync同步操作的服务器所在的备份源,需要备份的服务器

      服务端:运行rsyncd服务,需要备份的服务器

      客户端:存放备份数据

    1.5 数据同步的方式  

      推push:一台主机负责把数据传输给其他主机,服务器开销很大,比较适合后端服务器比较少的情况‘

      拉pull:所有主机找一台主机拉数据,可能导致数据缓慢

      推:目的主机配置为rsync服务器,源主机周期的使用rsync命令要把同步的目录推过去

      拉:源主机配置问rsync服务器,目的主机周期的使用rsync命令要把同步的目录拉过来,两种方案,都有对应的命令来实现

    使用rsync来同步,首先通过xineted监听873端口,如果rsync进来的是873端口,那么xinetd就会通知他所管辖的rsync服务来回应,接下来就是rsync之间的通讯

    二 安装rsync服务

    2.1 下载解压包

    [root@localhost ~]# cd /usr/local/src/

    [root@localhost src]# wget https://download.samba.org/pub/rsync/src/rsync-3.1.3.tar.gz

    [root@localhost src]# tar -xf rsync-3.1.3.tar.gz

    [root@localhost src]# cd rsync-3.1.3

    安装之前,必须安装GCC编译器

    2.2 编译安装

    [root@localhost rsync-3.1.3]# ./configure prefix=/usr

    [root@localhost rsync-3.1.3]# make

    [root@localhost rsync-3.1.3]# make install

    2.3 修改配置文件

    Rsync的配置文件主要有三个,rsyncd.conf主配置文件、rsyncd.secret密码文件、rsyncd.motd服务信息

    [root@localhost ~]# cat /etc/rsyncd.conf

    # /etc/rsyncd: configuration file for rsync daemon mode
    # See rsyncd.conf man page for more options.
    # configuration example:
    uid = rsync                        
    gid = rsync                                  
    use chroot = no                            
    read only = false                     
    #limit access to private LANs
    hosts allow = 172.19.18.0/255.255.255.0
    hosts deny = *                               
    max connections = 5                     
    pid file = /var/run/rsyncd.pid            
    secrets file = /etc/rsyncd.secrets  
    motd file = /etc/rsyncd.motd       
    log file = /var/log/rsync.log              
    transfer logging = yes                   
    log format = %t %a %m %f %b
    syslog facility = local3
    timeout = 300
    auth users = rsync_backup
    [wiki_test]                              
    path = /backup/wiki_test                      
    list=yes                                  
    ignore errors                              
    auth users = rsync_backup
    hosts allow = 172.19.18.39/32
    hosts deny = *      

    [root@localhost ~]# useradd rsync -s /sbin/nologin  -M

    [root@localhost rsync-3.1.3]# mkdir  /backup/wiki_test

    [root@localhost ~]# chown -R rsync /backup/

    [root@localhost ~]# ll -d /backup/

    [root@localhost rsync-3.1.3]# vim rsyncd.secrets

    rsync_backup:RWDshWFN8aUd7yGP

    [root@localhost ~]# cat /etc/rsyncd.motd

    [root@darren rsync-3.1.3]# chmod 400 rsyncd.secrets       

    设定rsyncd.motd文件

    他是定义服务器信息的,也就是用户登录信息,

    [root@dlocalhost rsync-3.1.3]# systemctl restart rsyncd

    [root@localhost ~]# netstat -ntlp|grep 873

    服务端配置完成

    三 配置客户端

    客户端centos6.6:172.19.18.39

    3.1 安装服务

    [root@localhost ~]# cd /usr/local/src/

    [root@localhost src]# wget https://download.samba.org/pub/rsync/src/rsync-3.1.3.tar.gz

    [root@localhost src]# tar -xf rsync-3.1.3.tar.gz

    [root@localhost src]# cd rsync-3.1.3

    [root@localhost rsync-3.1.3]# ./configure --prefix=/usr

    [root@localhost rsync-3.1.3]# make

    [root@localhost rsync-3.1.3]# make install

    [root@localhost rsync-3.1.3]# mkdir /etc/rsyncd

    [root@localhost rsync-3.1.3]#  touch /etc/rsyncd/rsyncd.conf

    [root@localhost rsync-3.1.3]# touch /etc/rsyncd/rsyncd.secrets

    [root@localhost rsync-3.1.3]# chmod 0600 /etc/rsyncd/rsyncd.secrets

    [root@localhost rsync-3.1.3]# cat /etc/rsyncd/rsyncd.secrets

    RWDshWFN8aUd7yGP

    3.2 启动服务,并作相关配置

    [root@localhost rsync-3.1.3]# /usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf

    [root@localhost home]# mkdir /home/tmp

    [root@localhost home]# cd /home/tmp

    [root@localhost tmp]# touch test1.txt

    [root@localhost tmp]# touch test.txt

    3.3 验证

    [root@localhost tmp]# rsync -avz --delete --password-file=/etc/rsyncd/rsyncd.secrets  /home/tmp/  rsync_backup@172.21.18.230::wiki_test

    四 另添加一个新的模块和新的客户端测试

    4.1 配置服务端,添加模块

    [root@localhost ~]# cat /etc/rsyncd.conf

    # /etc/rsyncd: configuration file for rsync daemon mode
    # See rsyncd.conf man page for more options.
    # configuration example:
    uid = rsync                        
    gid = rsync                                  
    use chroot = no                            
    read only = false                     
    #limit access to private LANs
    hosts allow = 172.19.18.0/255.255.255.0
    hosts deny = *                               
    max connections = 5                      
    pid file = /var/run/rsyncd.pid            
    secrets file = /etc/rsyncd.secrets  
    motd file = /etc/rsyncd.motd       
    log file = /var/log/rsync.log              
    transfer logging = yes                   
    log format = %t %a %m %f %b
    syslog facility = local3
    timeout = 300
    auth users = rsync_backup
    [wiki_test]                              
    path = /backup/wiki_test                      
    list=yes                                   
    ignore errors                             
    auth users = rsync_backup
    hosts allow = 172.19.18.39/32
    hosts deny = *                               
    [test]                              
    path = /backup/test                      
    list=yes                                   
    ignore errors                             
    auth users = rsync_backup
    hosts allow = 172.19.18.202/32
    hosts deny = *  

    [root@localhost1 ~]# mkdir /backup/test

    [root@localhost ~]# chown -R rsync /backup/

    [root@localhost ~]# systemctl restart rsyncd

    4.2配置另一个客户端

    客户端使用centos7.2.安装rsync使用和7相同的安装方法

    [root@localhost ~]# ip addr

    [root@localhost ~]# ll /data/

    4.3 验证

    [root@localhost ~]# rsync -avzx  --password-file=/etc/rsyncd.secret  /data/  rsync_backup@172.21.18.230::test 

    [root@localhost ~]# touch /backup/test/test2.txt

    [root@localhost ~]# rsync -avzx  --password-file=/etc/rsyncd.secret    rsync_backup@172.21.18.230::test   /data/

    [root@localhost ~]# ll /data

    4.4 关于delete的参数

    在客户端向服务端同步数据,使用delete参数,就会对比两个目录,如果存在差异文件,如果是推,就会删除服务端存在而客户端不存在的文件,同时发送自己存在而服务端没有的文件,如果是拉,就会删除自己存在而服务端不存在的文件,同时拉取服务端存在而自己不存在的文件

    [root@localhost ~]# touch /data/test4.txt

    [root@localhost ~]# ll /data

    [root@localhost ~]# rsync -avzx  --delete  --password-file=/etc/rsyncd.secret    rsync_backup@172.21.18.230::test   /data/

     

    [root@localhost ~]# ll /data

    [root@localhost ~]# touch /backup/test/test3.txt

    [root@localhost ~]# ls /backup/test/

    [root@localhost ~]# rsync -avzx  --delete  --password-file=/etc/rsyncd.secret  /data/   rsync_backup@172.21.18.230::test 

     

    [root@localhost ~]# ll /backup/test/

    验证完成!

    作者:梦中泪
    关于作者:云计算,linux,虚拟化,存储

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

    个性签名:我以为我很颓废,今天我才知道,原来我早报废了。

    如果觉得本篇文章最您有帮助,欢迎转载,且在文章页面明显位置给出原文链接!记得在右下角点个“推荐”,博主在此感谢!

  • 相关阅读:
    记一次小团队Git实践(下)
    记一次小团队Git实践(中)
    记一次小团队Git实践(上)
    Android拓展系列(12)--使用Gradle发布aar项目到JCenter仓库
    Android学习系列(43)--使用事件总线框架EventBus和Otto
    Android拓展系列(11)--打造Windows下便携的Android源码阅读环境
    Android学习系列(40)--Android主题和样式之系统篇(下)
    Android学习系列(42)--Android Studio实战技巧
    Android学习系列(41)--Android Studio简单使用
    Android学习系列(39)--Android主题和样式之系统篇(上)
  • 原文地址:https://www.cnblogs.com/zyxnhr/p/11117671.html
Copyright © 2020-2023  润新知