• 文件同步RSYNC



    特点:
       使用rsync算法。支持多平台
      rsync同步源表示服务端
      rsync发起端表示客户端
     命令格式:rsync [选项] 原始位置 目标位置
      常用选项:
       -a:归档模式,递归并保留对象属性,等同于 -rlptgoD
       -v:显示同步过程的详细(verbose)信息
       -z:在传输文件时进行压缩(compress)
       -H:保留硬链接文件
       -A:保留ACL属性信息
       --delete:删除目标位置有而原始位置没有的文件(强制同步,多余的全删掉)
       -r:递归模式,包含目录及子目录中所有文件
       -l:对于符号链接文件仍然复制为符号链接文件
       -p:保留文件的权限标记
       -t:保留文件的时间标记
       -g:保留文件的属组标记(仅超级用户使用)
       -o:保留文件的属主标记(仅超级用户使用)
       -D:保留设备文件及其他特殊文件
     ssh模式:
      同步源:
       cd /var/ssh
       setfacl -m u:zhangsan:rwx .          #对目录进行授权
      发起端:
       rsync -avz zhangsan@10.244.16.21:/var/ssh/* /var/ssh-c/   #下行同步
       rsync -avz /var/ssh-c/* zhangsan@10.244.16.21:/var/ssh/   #上行同步
       
     rsync模式:
       同步源:
      创建配置文件(默认不存在)
      vim /etc/reyncd.comf
       port 873  #指定端口
       log file = /var/log/rsyncd.log  #指定日志文件存放位置
       pid file = /var/run/rsync.pid  #pid文件存放位置
       [share]        #共享名
         connect = rsync server  #描述信息
         path = /var/rsync   #同步路径
         read only = yes    #读写权限【yes表示开启只读,false表示可以写。如果是yes使用rsync源上行同步时会报错】
         dont compress = *.gz *.bz2 *.zip  #不压缩的后缀
         auth users = aa    #认证的用户名
         secrets file = /etc/rsyncd_users.db  #认证的密码文件(默认不存在,也需要创建)
      创建密码文件:
       vim /etc/rsyncd_users.db
        aa:123456 #用户名:密码
       chmod 600 /etc/rsyncd_users.db  #密码文件必须改为600,否则认证失败。
      启动rsync
       rsync --daemon      #--daemon表示以进程的方式启动
       netstat -antp查看有没有873端口
       发起端:
      两种共享名同步格式:
       rsync -avz aa@10.244.16.21::share  /var/rsync-c/
       rsync -avz rsync://aa@10.244.16.21/share /var/rsync-c/
     
    免密码验证
     ssh源模式:
     (密钥对登陆)
      ssh-keygen -t rsa
      ssh-copy-id aa@10.244.16.21
     RSYNC模式:
     源声明环境变量export RSYNC_PASSWORD=密码
     
    实时同步:
    RSYNC+INOTIFY
     gcc编译环境:
      yum install -y gcc*
     软件包:
      inotify-tools-3.14.tar.gz ocaml-3.10.1.tar.gz  unison-2.13.16.tar.gz
     安装:
      tar -zxf inotify-tools-3.14.tar.gz
      cd inotify-tools-3.14 && ./configure && make && make install
     调整inotify内核参数
     vim /etc/sysctl.conf(非必需,具体大小根据实际情况来)
      max_queue_events  监控队列大小。官方推荐16384
      max_user_instances 最多监控实例数。官方推荐1024
      max_user_watches 每个实例最多监控文件数。官方推荐1028576
     编写触发rsync机制的脚本
     vim rsync.sh
      #!/bin/bash
      a="inotifywait -mrq -e modify,create,move,delete /var/rsync-c"
      #监控对指定目录的更改(modify)、创建(create)、移动(move)、删除(delete)
      b="rsync -avz /var/rsync-c/* root@10.244.16.21:/var/rsync"
      #进行rsync上行同步操作
      $a | while read directory event file  
      #持续监控过程中一旦读到了目录指定事件的发生。执行do...done里面的操作。
      do
        $b
      done
     脚本后台持续运行
      bash rsync.sh &
     
     
     
    https://blog.51cto.com/jianghm/1947701
  • 相关阅读:
    最新java学习路线:含阶段性java视频教程完整版
    2019最新WEB前端开发小白必看的学习路线(附学习视频教程)
    区块链技术学习路线(全网最新)
    java学习路线之必会的java基础教程
    新手如何学习python(python学习路线图)
    python学习教程,史上最全面的python学习路线图
    机器学习中的误差 Where does error come from?
    主成分分析 Principle Component Analysis
    线性回归 Linear Regression
    MCtalk对话尚德机构:AI讲师,假套路还是真功夫?
  • 原文地址:https://www.cnblogs.com/lingshu/p/10615139.html
Copyright © 2020-2023  润新知