• rsync 服务介绍及相关实验


    一、rsync 简介

    rsync 是类 unix 系统下的数据镜像备份工具。一款支持快速完全备份和增量备份的工具,支持本 地复制,远程同步等,类似于 scp 命令;rsync 命令在同步文件之前要先登录目标主机进行用户身份 认证,认证过后才能进行数据同步,身份认证方式取决于所使用的协议类型,rsync 一般使用两种协议进行数据同步:ssh 协议和 rsync 协议。

    二、rsync 特性

    • 能更新整个目录树和文件系统
    • 有选择性的保留符号链接、硬链接、文件属性、权限、设备以及时间等
    • 对于安装来说,无任何特殊权限要求
    • 对于多个文件来说,文件传输效率高
    • 能用 ssh 或自定义端口作为传输入口端口

    三、工作原理

    既然涉及到数据同步,就要涉及到以哪一方为基准,哪一方为目标。例如,想让目标主机上的文件和本地文件保持同步,则是以本地文件为同步基准,将本地文件作为源文件推送到目标主机上。 rsync 在进行数据同步之前需要先进行用户身份验证,验证方式取决于使用的连接方式:

    • ssh 登录验证模式:使用 ssh 协议作为基础进行用户身份认证,然后进行数据同步。
    • rsync 登录验证模式:使用 rsync 协议进行用户身份认证(非系统用户),然后进行数据同步。

    四、rsync 相关实验

    1、 ssh 协议数据同步,将 NFS 服务器数据同步备份到 rsync 服务器
    实现数据下载

    格式:rsync -avz 服务器地址:/服务器目录/*  /本地目录 
    示例:rsync -avz root@100.100.100.103:/share/* .  
    -a:归档模式,递归并保留对象属性  
    -v:显示同步过程  
    -z:在传输文件时进行压缩
    
    实现数据上传

    格式:rsync -avz  /本地目录/*  服务器地址:/服务器目录 
    示例:rsync -avz ./*  root@100.100.100.103:/share 
    注意:使用 root 用户进行实验可以,但生产环境中尽量使用单独创建的普通用户,减少权限溢出 创建用来做数据同步的用户,并给予用户对目录的相应权限,一般使用 ACL 设置权限 
    
    2、rsync 协议数据同步:将 NFS 服务器数据同步备份到 rsync 服务器
    搭建rsync 服务

    1)配置主配置文件

    address = 100.100.100.103     #rsync 服务绑定 IP  
    port 873        #默认服务端口 873  
    log file = /var/log/rsyncd.log   #日志文件位置  
    pid file = /var/run/rsyncd.pid   #进程号文件位置  
    [web]         #共享名:用来连接是写在 url 上的,切记   
    comment = rsync server  #共享描述话语   
    path = /share      #实际共享目录   
    read only = no      #是否仅允许读取                                                   
    dont compress = *.gz *.bz2   #哪些文件类型不进行压缩
    auth users = love2     #登录用户名(非系统用户,需要自行创建)   
    secrets file = /etc/rsyncd_users.db
    

    2)创建密码文件

    vim /etc/rsyncd_users.db
        love2:123456
    chmod 600 /etc/rsyncd_users.db
    

    3)启动服务

    [root@centos share]# netstat -antp | grep :873
    tcp        0      0 100.100.100.103:873         0.0.0.0:*                   LISTEN      2630/rsync 
    

    4)对 /share目录设立权限

    setfacl -m u:nobody:rwx /share
    
    实现下载
    格式:rsync -avz rsync://用户名@服务器地址/共享模块名 /本地目录 
    示例:rsync -avz rsync://love2@100.100.100.103/web . 
    拓展:--delete:删除本地比服务器多出来的文件
    rsync -avz --delete rsync://love2@100.100.100.103/web .
    
    实现上传
    格式:rsync -avz  /本地目录/*  rsync://用户名@服务器地址/共享模块名 
    示例:rsync -avz ./* rsync://love2@100.100.100.103/web 
    拓展:rsync 协议的免密码可以借助一个环境变量实现 
    # export RSYNC_PASSWORD=虚拟用户密码(客户端生成) 
    # export RSYNC_PASSWORD=123456
    
  • 相关阅读:
    JPA实体
    JPA简介
    Spring_boot_pom.xml和启动方式
    Hibernate中的Query
    Spring_Hibernate整合准备
    redis 常见问题
    python 操作redis
    大数据平台的搭建思路
    LEFT SEMI JOIN
    HDFS小文件问题及解决方案
  • 原文地址:https://www.cnblogs.com/hjnzs/p/12186707.html
Copyright © 2020-2023  润新知