• rsync服务


    一.简介

    1、认识
    Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。Rsync使用所谓的“Rsync算法”来使本地和远 程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快
    Rsync支持大多数的类Unix系统,无论是Linux、Solaris还是BSD上都经过了良好的测试
    此外,它在windows平台下也有相应的版本,如cwRsync和Sync2NAS等工具


    2、原理
    Rsync本来是用于替代rcp的一个工具,目前由rsync.samba.org维护,所以rsync.conf文件的格式类似于samba的主配 置文件;Rsync可以通过rsh或ssh使用,也能以daemon模式去运行
    在以daemon方式运行时Rsync server会打开一个873 端口,等待客户端去连接。连接时,Rsync server会检查口令是否相符,若通过口令查核,则可以开始进行文件传输。第一次连通完成时,会把整份文件传输一次,以后则就只需进行增量备份


    3、特点
    1、可以镜像保存整个目录树和文件系统;
    2、可以很容易做到保持原来文件的权限、时间、软硬链接等;
    3、无须特殊权限即可安装;
    4、优化的流程,文件传输效率高;
    5、可以使用rsh、ssh等方式来传输文件,当然也可以通过直接的socket连接;
    6、支持匿名传输
    7、类似与scp,cp ls rm命令


    4、可以实现:
    可实现Windows Linux unix 等不同平台的全量及增量的本地或者全程数据同步备份的优秀工具

    二.rsync参数:

    -H 保留源文件的硬链接文件
    -r 递归模式,包含目录及子目录的所有信息
    -z 在传输文件的同时进行压缩
    -v 显示同步过程的信息
    -t 保留文件的时间标记
    -o 保留文件的属主标记
    -p 保留了文件的权限标记
    -D 保留了设备文件和一些特殊的文件
    -S 对零散文件的处理
    -g 保留了文件的属组信息
    --version    查看rsync版本
    

    三.rsync特性:

    1.支持拷贝普通文件与特殊文件,如:符号链接,块设备,字符设备等
    2.支持同步时的排除功能
    3.支持保持权限等所有属性拷贝(如 cp -p)
    4.支持增量同步,只同步发生变化的数据,传输效率高

    四.rsync基本功能:

    本地复制文件:
    rsync /etc/hosts /opt/


    本地复制目录( -r )
    rsync -r /etc /opt/


    删除目录下的文件(需要创建一个/null 的空目录):
    rsync -r --delete /null/ /tmp/

    null 解释 --- 其实就是让 一个空目录与有文件的目录进行同步. 让有文件的目录与空文件保持同步
    这样有文件的目录经过同步也会成为空目录,这就是rsync删除的原理


    rsync复制文件到远程服务器:
    scp -rp /etc/hosts 10.0.0.4/tmp ##----需要输入远程服务器的密码


    复制目录到远程服务器:
    [root@chenleilei ~]# rsync /etc/hosts 10.0.0.4:/tmp
    root@10.0.0.4's password:

    四.rsync的一些小功能

    cp功能:
    复制目录:
    rsync  -r /etc  /tmp
    
    复制文件 
    rsync  -a /etc/hosts  /tmp   
    
    scp远程复制功能:
    rsync /etc/hosts 10.0.0.4:/tmp
    
    ls功能:
    [root@chenleilei ~]# rsync chenleilei/123.txt
    -rw-r--r-- 0 2018/05/03 21:35:51 123.txt
    
    rm功能(只能删除目录内的所有文件)
    1.创建一个空目录 chenleilei 
    2.rsync --delete -r 123/ chen/ 
    

    关于这个rm功能的说明: 能做到rm删除的效果仅仅是因额外rsync的同步功能,他会把一个目录
    中的内容与另一个目录进行主动同步,使得被同步目录与同步目录保持一致,如果同步的目录为空
    那么它被同步的目录也会成为空,当然,如果需要同步的中有一个文件,那么同步成功后主动同步的
    目录就会替换掉被同步内容.

    五.备份方式:

    全量备份
    全量备份会对服务器进行整体备份,一般第一次启动rsync的时候会进行一次全量备份
    
    增量备份
    增量备份只会对新增或者修改的文件进行备份
    centos6以后的增量备份原理是:检查源数据与目标数据的差异,检查到有差异的文件立即备份到目标服务器,也就是边比对,边同步
    

    六.提升安全性:

    通过soket(进程方式) 传输文件和数据(服务端客户端) ----重点掌握
    使用rcp,rsh,ssh等方式来配合进行隧道加密传输文件(rsync不会对是数据进行加密)
    支持匿名或认证(匿名:无需系统用户)的进程模式传输,实现方便安全的进行数据备份

    七.企业工作使用场景:

    1.利用定时任务+rsync方式进行数据同步[内部员工使用场景]
    2.利用实时任务+rsync方式进行数据同步[外部远程使用场景]

    八.项目方案: 生产场景常见集群架构备份方案---全网备份方案

    借助cron+rsync 把所有客户服务器数据同步到备份服务器
    全网服务器数据备份解决方案提出和负责实施
    1.针对中哟啊数据备份混乱,向领导提出全网数据的备份解决方案
    2.通过本地打包备份,使用 rsync结合 inotify 服务 实现全往数据统一备份到一个固定的服务器
    然后保存在存储服务器中,并使用脚本检查,并通知管理员备份结果.
    3.定期将IDC机房的数据备份到公司的内部服务器,防止机房地震及火灾问题导致的数据丢失.
    

    九.rsync的同步方式:

    1.本地同步方式:  rsync    选项    源    目标
     例子: rsync    -r    /etc    /opt/
    
    2.shell远程同步方式:
    
    3.常用同步参数 -rp :
    -r :  递归处理
    -p:  保留权限
    root@10.0.0.4: 远程主机用户身份和IP地址
    
    4.文件的拉取和推送操作:
    4.1 拉取远程数据(pull):    rsync -rp root@10.0.0.4:/tmp/hosts    /etc/
    4.2 推送到远程服务器(push):  rsync -rp /etc/hosts  root@10.0.0.4:/tmp
    
    5.目录的拉取推送操作: (/ 和不加 / 的区别是 加/是把目录中内容推送, 不加/ 是推送目录)
    5.1 推送本地目录到远程/tmp目录下   rsync -rp /etc/sysconfig    root@10.0.0.4:/tmp
    5.2 拉取远程目录到本地当前目录下   rsync -rp root@10.0.0.3:/tmp/chen .      
    

    十.rsync的配置文件 - 配置守护进程 (/etc/rsyncd.conf 守护进程配置文件):

    rsync默认配置文件没有被创建,它默认的配置文件存放地: /etc/rsyncd.conf

    #rsync_config 
    #created by HQ at 2017 
    ##rsyncd.conf start## 

    uid = rsync         ##用户id
    gid = rsync         ##用户组的gid
    use chroot = no     ## 安全配置.最好关闭
    max connections = 200  ##最大连接数
    timeout = 300         ## 超时时间
    pid file = /var/run/rsyncd.pid      ##服务运行时的进程pid (查看pid后可以通过kill 杀死)
    lock file = /var/run/rsync.lock     ##进程锁文件(超过最大连接后锁定)
    log file = /var/log/rsyncd.log     ##程序运行的日志文件
    ignore errors  ##忽略错误(避免报错后停止,所以暂时忽略错误继续备份)
    read only = false   ##是否只读  force 可读可写
    list = false     ##列表
    hosts allow = 172.16.1.0/24  ##允许
    hosts deny = 0.0.0.0/32     ##拒绝
    auth users = rsync_backup 
    secrets file = /etc/rsync.password 
    [backup] 
    comment = "backup dir by oldboy" 
    path = /backup    ##模块保存的目录
    #created by chen at2018
    ##rsyncd.conf start
    uid = rsync
    gid = rsync
    use  chroot = on
    max connections = 200
    timeout = 300
    pid file = /var/run/rsyncd.pid
    lock file = /var/run/rsync.lock
    log file =  /var/log/tsyncd.log
    ignore errors
    hosts allow = 172.16.1.0/24
    hosts deny = 0.0.0.0/32
    auth users = rsync_backup
    secrets file = /etc/rsync.passwd
    [backup]
    comment = "backup dir by chenleilei"
    path = /backup
    
    写入到/etc/rsyncd.conf文件中
    

    十一 .创建用户虚拟用户 rsync

    useradd -s /sbin/nologin -M rsync
    

    十二. 创建用户密码文件(安全认证文件)

    echo ‘rsync_backup:123456‘ >/etc/rsync.passwd
    chmod 600  /etc/rsync.passwd   ----给这个权限是不想让除了root之外的其他用户看到
    

    十三 .创建创建备份目录 /backup

    mkdir -p /backup
    chown rsync.rsync /backup
    

    基本配置完成

    十四. 启动守护进程

    rsync --daemon
    
    他有进程信息 通过 ps -ef | grep rsync 查看
    

    十五. 检查守护进程是否启动

    [root@oldboyedu-sh01 ~]# ps -ef | grep rsync
    root 2230 2119 0 01:08 pts/0 00:00:00 grep rsync
    

    有就代表启动完成了,自此esync服务就配置完成了

  • 相关阅读:
    青云面试记录
    设计模式01 简介
    枚举
    MSIL语言类型对照表
    爬虫练习一
    项目管理学习理解
    成本管理4大过程
    项目范围
    范围管理7大大过程
    合同管理
  • 原文地址:https://www.cnblogs.com/superlinux/p/8605c786a190bb722312989873a3da2a.html
Copyright © 2020-2023  润新知