<div id="7x91n"></div>
    <progress id="7x91n"><tr id="7x91n"><ruby id="7x91n"></ruby></tr></progress>

    <em id="7x91n"></em>
      <progress id="7x91n"></progress>

      <dl id="7x91n"><ins id="7x91n"></ins></dl>

          <div id="7x91n"></div>

          <dl id="7x91n"></dl>

          <dl id="7x91n"><ins id="7x91n"><thead id="7x91n"></thead></ins></dl>

            <div id="7x91n"><tr id="7x91n"></tr></div>

            <div id="7x91n"></div>
            <div id="7x91n"></div>
            <dl id="7x91n"></dl><dl id="7x91n"><ol id="7x91n"></ol></dl>
            首页 > 其他 > 详细

            CentOS 7使用rsync实现数据备份

            时间:2017-11-21 14:13:19      阅读:5371      评论:0      收藏:1      [点我收藏+]

            标签:rsync

            一、rsync是什么

                在开始正式学习rsync之前,我们先来回答这个问题:rsync是什么。

                rsync(remote synchronize)是Liunx/Unix下的一个远程数据同步工具。它可通过LAN/WAN快速同步多台主机间的文件和目录,并适当利用rsync算法(差分编码)以减少数据的传输。rsync算法并不是每一次都整份传输,而是只传输两个文件的不同部分,因此其传输速度相当快。除此之外,rsync可拷贝、显示目录属性,以及拷贝文件,并可选择性的压缩以及递归拷贝。

            三、rsync优点

                rsync有以下几个优点:

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

            • 可以很容易做到保持原来文件的权限、时间、软硬连接等。

            • 无需特殊权限即可安装。

            • 拥有优化的流程和比?#32454;?#30340;文件传输效率。

            • 可以使用shell(rsh、ssh)方式来传输文件。

            • 支持匿名运行。

            • 与scp相比,rsync传输速度绝对远远超过scp的传输速度。

                我们在局域网中经常用rsync和scp传输大量mysql数据库文件,发现rsync传输文件速度至少要比scp快20倍以上。

                所以如果需要在Liunx/Unix服务器之间互传海量数据时,建议选择rsync进行传输。

            四、运行模式(服务器)

                rsync有两种常用的?#29616;?#26041;式,一种是rsync-daemon方式,另外一种是ssh方式(类似于scp)。在平时使用过程,我们使用最多的是rsync-daemon方式。

                这种模式是基于C/S模式的,在这种模式下,rsync在后台启用了一个守护进程,这个守护进程在rsync服务器永久运行,用于接收请求传输文件,因此,客户端既可以把文件推送(push)给守护进程,也可以向守护进程拉取(pull)文件。rsync的服务器模式非常适合为异地的?#34892;?#22791;份服务器或数据异地存储库来使用。

            案例介绍:

               我们使用pull模式,我们有多个应用的服务器作为服务端,备份服务器作为客户端,备份服务器向每个应用服务器拉取需要备份的数据,放到相应的目录下面。

            技术分享?#35745;? onload=650) this.width=650;" src="https://s5.51cto.com/oss/201711/21/0024db6303a2160685403fe748cf8c6d.jpg" title="QQ截图20171121113942.jpg" alt="0024db6303a2160685403fe748cf8c6d.jpg" />

            五、安装配置rsync

            1、安装rsync

                为了简便,我们这里直接使用yum进行安装即可。

            yum install rsync -y

            2、配置rsync服务端(应用服务器)

                我们有一台云盘的服务器,IP为10.0.2.15,我们在这台服务器上面进行服务端的配置,我们需要备份的路径为/data/nextcloud,首先进?#20449;?#32622;文件的设定,我们设置的如下:

            # cat /etc/rsyncd.conf
            
            uid = root
            gid = root
            use chroot = yes
            max connections = 10
            pid file = /var/run/rsyncd.pid
            log file = /var/log/rsync.log
            transfer logging = yes
            timeout = 900
            ignore nonreadable = yes
            dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
            
            [nextcloud]
            path = /data/nextcloud
            comment = pan.comratings.com
            read only = yes
            write only = no
            hosts allow = 10.0.2.30
            list = no
            ignore errors
            auth users = backup
            secrets file = /etc/rsyncd.pass

                增?#29992;?#30721;?#29616;?#25991;件:

            # vim /etc/rsyncd.pass
            backup:123456     #具有拉取数据的账号密码
            chmod 600 /etc/rsyncd.pass

               启动服务器:

            systemctl start rsyncd.service

            3、配置rsync客户端(备份服务器)

                配置密码?#29616;?#25991;件,这里只需配置密码即可,账号我们会在命令里面指定:

            # vim /etc/rsyncd.pass
            123456
            chmod 600 /etc/rsyncd.pass

            4、进行数据拉取测试

                我们在备份服务器上面同样安装rsync,然后进行如下指令进行数据拉取:

            rsync -vzrtopg --delete --progress --password-file=/etc/rsyncd.pass [email protected]::nextcloud /data/10.0.2.15/nextcloud

            技术分享?#35745;? onload=650) this.width=650;" src="https://s5.51cto.com/oss/201711/21/f549768aa6d437698677ad56e007ee6e.jpg" title="QQ截图20171121115712.jpg" alt="f549768aa6d437698677ad56e007ee6e.jpg" />

            v是“--verbose”显示详细输出模式
            z是“--compress”压缩模式
            r是“--recursive”以子目录递归模式
            t是“--times“用来保持文件信息时间
            o是”--owner“用来保持文件的属主信息
            p是”--perms“用来保持文件权限
            g是”--group“用来保持文件的属组
            --progress:用来显示数据镜像同步的过程
            --delete:指定以rsync服务器为基准进行数据镜像同步,也就是要保持rsync服务器端目录与客户端目录的完全一致
            --exclude:用于排除不需要文件传输的类型
            /date/10.0.2.15/nextcloud:用户指定备份文件在客户端机器上的存放路径

            5、客户端添加定时任务

            crontab -e
            # 10.0.2.15 backup
            00 01 * * * root /usr/bin/rsync -vzrtopgn --delete --progress --password-file=/etc/rsyncd.pass [email protected]::nextcloud /data/10.0.2.15/nextcloud

            注意:

            • --delete:如果源端没有此文件,那么目的端也别想拥有,删除之。(如果你使用这个选项,就必须搭配-r选项一起)

            • --delete-excluded:专门指定一些要在目的端删除的文件。

            • --delete-after:默认情况下,rsync是先清理目的端的文件再开始数据同步;如果使?#20040;?#36873;项,则rsync会先进行数据同步,都完成后再删除那些需要清理的文件。

                看到这么多delete,你是否有点肝颤? 的确,在rsync的官方说明里也有这么一句话:

            This option can be dangerous if used incorrectly!  
            It is a very good idea to run first using the dry  run  option
            (-n) to see what files would be deleted to make sure 
            important files aren‘t listed.

                从这句话里,我们学到了一个小技巧,那就是-n选项,它是一个吓唬人的选项,它会用受影响的文件 列表来警告你,但不会真的去删除,这就让我们有了确认的机会和回旋的余地。所以我们在定时任务添加了-n参数。

            附录:配置文件

                以下是配置文件的一些参数?#27493;猓?/p>

            pid file = /var/run/rsyncd.pid    #进程 pid 文件所在位置
            port = 873    #指定监听端口,默认是873,可以自己指定
            address = 10.0.2.15    #服务器监听的IP地址,可省略
            uid = root   #守护进程所属的uid,默认是nobody,可能会碰到文件或目录权限问题,此处偷懒用的 root
            gid = root   #守护进程的gid
            #chroot,即改变程序执行时所参考的根目录位置,在传输文件之前,服务器守护程序在将chroot 到文件系统中的目录中
            #这样做的?#20040;?#26159;可能保护系统被安装漏洞侵袭的可能。缺点是需要超级用户权限。另外对符号链接文件,将会排除在外
            #也就是说,你在 rsync服务器上,如果有符号链接,你在备份服务器?#26174;?#34892;客户端的同步数据时,
            #只会把符号链?#29992;?#21516;步下来,并不会同步符号链接的内容
            use chroot = yes
            read only = yes   #只读选择,只?#27599;?#25143;端从服务器上读取文件
            write only = no   #只写选择,只?#27599;?#25143;端到服务器上写入
            #允许访问的IP,可以指定单个IP,也可以指定整个网段,能提高安全性。
            #格式是 ip 与 ip 之间、ip 和网段之间、网段和网段之间要用空格隔开;
            hosts allow = 192.168.1.0/255.255.255.0 10.0.1.0/255.255.255.0 
            max connections = 5     #客户端最多连接数
            log file = /var/log/rsync.log      #rsync 服务器的日志;
            transfer logging = yes      #记录传输文件的日志
            log format = %t %a %m %f %b      #日志格式
            syslog facility = local3 #日志级别
            #通过该选项可以覆盖客户指定的IP超时时间。可以确保rsync服务器不会永远等待一个崩溃的客户端。
            #超时单位为秒钟,0表示没有超时定义,这也是默?#29616;怠?#23545;于匿名rsync服务器来说,一个理想的数字是600。
            timeout = 300 
            #模块定义
            #主要是定义服务器哪个目录要被同步。
            #每个模块都要以[name]形式。这个名字就是在 rsync 客户端看到的名字。
            #但是服务器真正同步的数据是通过 path 指定的。可以?#26469;?#21019;建多个模块。
            #每个模块要指定?#29616;?#29992;户、密码文件,但排除并不是必须的。
            [nextcloud]    #模块名,以下配置都属于此模块
            path = /data/nextcloud     #文件目录所在位置
            list = no    #当查看服务器上提供?#22235;?#20123;目录时是否列出来,no比?#20064;?#20840;
            ignore errors    #忽略I/O错误
            #指定由空格或逗号分隔的用户名列表,只有这些用户才允许连接该模块。这里的用户和系统用户没有任何关系,是 rsyncd.secrets 中的用户名!
            #如果"auth users"被设置,那么客户端发出对该模块的连接请求以后会被rsync请求challenged进行验证身份。
            #这里使用的 challenge/response ?#29616;?#21327;议。
            #用户的名和密码以明文方式存放在"secrets file"选项指定的文件中。默认情况下无需密码就可以连接模块(也就是匿名方式)。
            auth users = backup
            secrets file = /etc/rsyncd.pass    #密码文件



                                           技术分享?#35745;? onload=650) this.width=650;" src="https://s5.51cto.com/oss/201711/21/39730b9c3cdb31541627f2f76b6e1992.jpg" title="qrcode_for_gh_891f5ff6ec4e_258.jpg" alt="39730b9c3cdb31541627f2f76b6e1992.jpg" />

            本文出自 “运维点滴记录” 博客,请务必保留此出处http://wzlinux.blog.51cto.com/8021085/1983734

            CentOS 7使用rsync实现数据备份

            标签:rsync

            原文:http://wzlinux.blog.51cto.com/8021085/1983734

            (0)
            (0)
               
            举报
            评论 一句话评论(0
            0条  
            登录后才能评论!
            ? 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
            打开技术之扣,分享程序人生!
                         

            鲁公网安备 37021202000002号

            福建省餐饮许可现场