rsync 服务基础配置讲解

RSYNC 服务基础配置

关于RSYNC

1. 关于RSYNC

  1. 一款 快速增量备份工具
  2. Remote SYnc ,远程同步
  3. 支持本地赋值,或者与其他SSH,rsync主机同步
  4. 官方网站 : https://rsync.samba.org/
  5. 单向备份 是最好的,

2. 概述

  1. Rsync 是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也可以使用Rsync同步本地硬盘的不同目录
  2. Rsync 是用于取代rcp 的一个工机具,Rsync 使用Rsync 算法,来达到童虎,这个算法只传输两个文件的不同部分
  3. 通过校验和的 来实现 文件同步
  4. Rsync 支持大多数系统,win也是(cwRsync ,Sync2Nas)

3. 特点

  1. 能更新整个目录和树和文件系统
  2. 有选择性的保持符号链接、硬链接、文件属于、权限、设备、时间等
  3. 对于安装来说,无任何特殊权限要求
  4. 能用rsh,ssh或直接端口作为传输端口
  5. 支持匿名rsync同步文件,是理想的镜像工具

4. 同步源与发起端

  1. rsync 同步源

    1. 指备份操作的远程服务器,也称备份源

    2. 主要包括 : rsync ,SSh

在这里插入图片描述

  1. 同步的优缺点:

    1. 定期同步不足:
      1. 指定备份的时间固定,延迟明显,实时性差
    2. 实时同步
      1. 同步源发生变化,就会开始同步,

命令

1. 命令格式

在这里插入图片描述

2. 用法

在这里插入图片描述

搭建同步源

1. 基于SSH同步源

  1. 客户机:
下载 :setfac1  设置权限工更加的安全
rsync -avz server@IP:/var/www/html/*  /client/ssh

上传:
rsync -avz /client/ssh  username@IP:/var/www/html/* 

1. 基于Rsync 同步源

  1. 要写配置文件

    在这里插入图片描述

    address = iP    #监听网卡
    port  873		# 端口号
    pid file = /var/run/rsyncd.pid  #pid文件
    log file = /var/log/rsyncd.log  # 日志文件
    
    [share]
    		comment = soft  #描述信息
    		path =  /server/rsync #共享目录
    		read only = yes  #设定制度
    		dont compress = *.gz  *.bz2  *.zip#设置哪些文件不进行压缩
    		auth users = wang #虚拟用户
    		secrets file = /etc/rsyncd_users.db #用户名密码的文件(像搭建 ftp的虚拟用户)
    		
    
  2. 写 rsyncd_users.db 文件

    wang:123456
    
  3. rsync 配置文件 /etc/xinetd.d/rsync

    1. 设置自动启动
  4. 启动

    1. rsync --demon
  5. 客户机连接同步

    1. 有两种书写格式
    2. rsync -avz wang@IP ::share /client/rsync/
    3. 如果这块显示认证失败
    4. 是服务端的密码认证的文件,需要设置为600权限
    5. chmod 600 /etc/rsyncd_users.db
  6. 客户机上传:显示权限不足

    1. 因为虚拟用户是nobody用户,需要通过服务器设置这个实际目录的权限
    2. setfac1 -m u:nobody:rwx /server/rsync/

实现免密码验证

1. ssh-通过密钥对

  1. 生成密钥对
  2. ssh-kcygen -t rsa
  3. ssh-copy-id server@ip #上传服务器

2. 基于Rsync同步源

  1. 变量 ¥RSYNC_PASSWORD
  2. 给这个变量赋值的密码,,,记得升级为全局

inotify(实时工具)

1. 第三方安装make等等

2. 内核参数(/etc/systl.conf )

  1. max_queue_events :监控队列大小
  2. max_user_instances : 最多监控实例数
  3. max_user_watches : 每个实例最多监控文件数
  4. 一般足够用
  5. 每个系统都是不一样的

3. 监控

  1. inotifywait : 用于持续监控,实时输出结果

  2. inotifywatch : 用于短期监控,任务完成后再出结果

在这里插入图片描述

  1. 通过脚本来检测文件变化,实时传输

  2. 例子

    a = "/usr/local/bin/inotifywait -mrq -e create /var/www/html"
    b = "/usr/bin/rsync -avz /var/www/html/*  客户端IP:/同步目录"
    $a | while read directory event file
    do
    	$b
    done
    

unsion 支持双向同步

1. inotify+unsion

  1. unsion 需要制定参数

    1. make UISTYLE=text 命令行模式
    2. THREADS=true 多进程模式
    3. STATIC=true 静态模式
  2. unsion 只需要将 unison 复制到/usr/local/bin/ (可以执行的地方)

  3. 脚本(lizi)

    a = "/usr/local/bin/inotifywait -mrq -e create,delete /server1"
    b = "/usr/local/unison  -batch /server1/  ssh://192/168.1.1//server2"
    
    $a | while read directory event file
    do 
    	$b
    done
    
原文地址:https://www.cnblogs.com/YJBlog/p/10815082.html