zoukankan      html  css  js  c++  java
  • Rsync以守护进程(socket)的方式传输数据

    Rsync以守护进程(socket)的方式传输数据

     
     
     

    Rsync服务部署

    一、以守护进程(socket)的方式传输数据(重点)

    部署环境:

    分别用uname命令查看各系统相关信息

    操作系统

    主机名 网卡eth0 默认网关 用途
    root@A-Server58 192.168.1.111 192.168.1.1 Rsync服务端
    root@B-Server64 192.168.1.121 192.168.1.1 Rsync 节点
    root@C-Server58 192.168.1.119 192.168.1.1 Rsync 节点

    子网掩码均为255.255.255.0

    具体需求:

    要求在A-Server上以rsync守护进程的方式部署rsync服务,使得所有rsync节点客户端主机,可以把本地数据通过rsync的方式备份到数据备份服务器A-Server上,本例的客户端仅以B-Server、C-Server为例

    备份拓扑

    1. 部署rsync服务

    1)rsync服务端配置过程

    配置rsyncd.conf

    首先确认软件是否安装

    [root@A-Server58 ~]# vi /etc/rsyncd.conf   #增加如下配置,

    创建同步的本地目录/dingjian 并根据需要授权

    目录和/etc/rsync.password为配置文件中path = /dingjian/参数的配置

    配置用于rsync同步的账号、密码及账号文件以限

    [root@A-Server58 ~]# echo "rsync_backup:dingjian">/etc/rsync.password

    #其中rsync_backup:95862909中的rsync_backup为同步传输用到的虚拟账号,这个账号仅为rsync的账号,不需要是系统账号,后面的dingjian为密码,不超过8位

    启动rsync服务

    以守护进程方式来启动rsync服务

    拓展:rsync的进程参数选项

    --daemon  #表示以守护进程的方式启动rsync服务

    --address  #绑定指定ip地址

    --config=FILE #更改配置文件路径,而不是默认的/etc/rsyncd.conf

    --port=PORT #更改其它端口提供服务,而不是缺省的873端口

    提示:以上几个选项为了解内容,生产场景使用的不多

    通过端口查服务

    设置rsync服务开机自启动

    注意当然还可以用chkconfig rsync on命令,但是必须要编写适合chkconfig操作脚本才行

    重起rsync的组合命令

    检查启动的进程

    几个进程管理命令

    杀进程:pkill rsync

    killall rsync  可能一次杀不死,要连按连杀

    killall -9 rsync  强制杀死进程 -9

    kill -9 4084  利用端口号加-9 强制进程,

    2)rsync客户端配置过程

    请注意与服务端的配置区别

    服务端192.168.1.119 192.168.1.121分别做如下操作

    此时rsync服务配置大功告成!

    检查部置的rsync服务

    默认情况,以下均为rsync客户端执行操作,下面以ip192.168.1.121 B-Server为例说明:

    推送(即从客户端同步文件或目录到服务器端)

    从客户端推送/etc 目录到服务端rsync指定的目录(本文档为/dingjian)下

    rsync -avzP /etc rsync_backup@192.168.1.111::dingjian/ --password-file=/etc/rsync.password

    从服务端指定的/dingjian目录把数据拉取到客户端本地/tmp目录下

    rsync -avzP rsync_backup@192.168.1.111::dingjian/ --password-file=/etc/rsync.password /tmp

    排除打包

    方法一:

    在客户端操作:

    [root@B-Server64 tmp]# rsync -avz --exclude=etc --exclude=tmp . rsync_backup@192.168.1.111::dingjian --password-file=/etc/rsync.password

    使用--exclude=进行排除

    方法二:

    在服务端配置rsyncd.conf参数实现

    加入排除参数  exclude=etc tmp

    重启rsync服务 杀进程,重启服务

    测试推送备份

    [root@B-Server64 tmp]# rsync -avz . rsync_backup@192.168.1.111::dingjian --password-file=/etc/rsync.password

    无差异同步

    要实现这种同步方法就要使用--delete参数了

    本地测试

    [root@B-Server64 tmp]# rsync -avzP --delete /null/ /tmp/

    拉取方法

    [root@B-Server64 tmp]# rsync -avzrtopg --delete --progress rsync_backup@192.168.1.111::dingjian/ /tmp/ --password-file=/etc/rsync.password

    推送方法

    [root@B-Server64 tmp]# rsync -avzrtopg --delete --progress . rsync_backup@192.168.1.111::dingjian/ --password-file=/etc/rsync.password

    执行--delete参数从rsync服务端往rsync客户端拉取数据时,一定要小心,最好不用,它比从rsync客户端带--delete参数往rsync服务端推送危险得多,客户端带--delete参数往服务端推送仅删除服务端模块下的数据,而前者有能力删除rsync客户端本地的所有数据,包括根下的所有目录

    生场场景没有特殊要求,应避免使用,一般是有需要两台服务器之间,必须要求数据一致且时时性又不是很高的情况,如两台负载均衡下面的web服务器之间的同步,或者高可用双机配置之间的同步等。

    多目录模块同步

    配置/etc/rsyncd.conf配置文件

    重启rsync服务

    pkill rsync

    ps -ef|grep rsync

    rsync --daemon

    ps -ef|grep rsync

  • 相关阅读:
    程序集“xxx"中的类型"xxx"的方法“XXXX”没有实现
    关于C# json转object时报错:XXXXXXXXXX需要标记“"”,但找到“XX”。
    System.Reflection.Assembly.GetEntryAssembly()获取的为当前已加载的程序集
    MongoDB 模糊查询,及性能测试
    SignalR介绍与Asp.net,前台即时通信【转】
    mongodb常用命令【转】
    MongoDB update数据语法【转】
    Mongodb在Windows下安装及配置 【转】
    C#(asp.net)备份还原mssql数据库代码【转】
    小记,取GB2312汉字的首字母【转】
  • 原文地址:https://www.cnblogs.com/L-H-R-X-hehe/p/3960772.html
Copyright © 2011-2022 走看看