zoukankan      html  css  js  c++  java
  • rsync

    同步时 双方需安装 rysnc 和 open-client
    rsync 增量拷贝

    1. rsync 命令格式
      rsync [OPTION]... SRC DEST
      rsync [OPTION]... SRC [USER@]HOST:DEST
      rsync [OPTION]... [USER@]HOST:SRC DEST
      rsync [OPTION]... [USER@]HOST::SRC DEST
      rsync [OPTION]... SRC [USER@]HOST::DEST

    2. rsync常用选项
      -a 归档模式,表示以递归方式传输文件,并保持所有属性,等同于-rlptgoD, -a选项后面可以跟一个 --no-OPTION 这个表示关闭-rlptgoD中的某一个例如-a--no-l 等同于-rptgoD
      -r 对子目录以递归模式处理,主要是针对目录来说的,如果单独传一个文件不需要加-r,但是传输的是目录必须加-r选项
      -v 打印一些信息出来,比如速率,文件数量等
      -l 保留软链结
      -L 向对待常规文件一样处理软链接,如果是SRC中有软链接文件,则加上该选项后将会把软链接指向的目标文件拷贝到DST
      -p 保持文件权限
      -o 保持文件属主信息
      -g 保持文件属组信息
      -D 保持设备文件信息
      -t 保持文件时间信息
      -z 压缩
      --delete 删除那些DST中SRC没有的文件
      --exclude=PATTERN 指定排除不需要传输的文件,等号后面跟文件名,可以是万用字符模式(如*.txt)
      --progress 在同步的过程中可以看到同步的过程状态,比如统计要同步的文件数量、同步的文件传输速度等等-P
      -u 加上这个选项后将会把DST中比SRC还新的文件排除掉,不会覆盖
      最常用的 -a -v --delete --exclude
    3. rsync选项讲解
      rsync -av dir1/ dir2/ # 其中dir2/目录可以不存在,记得同步目录时一定要在末尾加上/
      -a 会把软连接原原本本的拷贝过去,那有时候我们想拷贝源文件怎么办?就时候就用到一个 -L
      rsync -avL test1/ test2/
      -u 选项的作用是,如果目标文件比源文件新,那么会忽略掉该文件
      touch test2/1.txt; rsync -avu test1/ test2/
      rsync -av --delete test1/ test2/ #这样会把test2/目录比test1/目录多出来的文件删除掉
      rsync -a --exclude=“2.txt” test1/ test2/ #在同步的过程中,会忽略掉2.txt这个文件
      rsync -a --progress --exclude=“.txt” test1/ test2/ #--progress 显示同步过程的详细信息,--exclude后面也可以使用通配符

    4. rsync应用实例 - ssh方式
      rsync -avL test1/ www@192.168.0.101:/tmp/test2/
      rsync -avL 192.168.0.101:/tmp/test2/ ./test3/
      由于需要输入密码所以不适合写到脚本中,但可以通过创建秘钥对,让两台机器产生信任关系从而不用输入密码
      如果ssh端口不是22,那么需要写成这样的形式:rsync -av "--rsh=ssh -p port” /dir1/ 192.168.0.101:/tmp/dir2/

    5. rsync应用实例 - 后台服务方式
      配置文件 /etc/rsyncd.conf ,内容如下:
      #port=873 #监听端口默认为873,也可以是别的端口
      log file=/var/log/rsync.log #指定日志
      pid file=/var/run/rsyncd.pid #指定pid
      #address=192.168.0.10 #可以定义绑定的ip
      以上部分为全局配置部分,以下为模块内的设置
      [test] #为模块名,自定义
      path=/root/rsync # 指定该模块对应在哪个目录下
      use chroot=true #是否限定在该目录下,默认为true,当有软连接时,需要改为fasle
      max connections=4 # 指定最大可以连接的客户端数
      read only=no #是否为只读
      list=true #是否可以列出模块名
      uid=root #以哪个用户的身份来传输
      gid=root #以哪个组的身份来传输
      auth users=test #指定验证用户名,可以不设置
      secrets file=/etc/rsyncd.passwd #指定密码文件,如果设定验证用户,这一项必须设置
      hosts allow=192.168.0.101 #设置可以允许访问的主机,可以是网段
      密码文件/etc/rsyncd.passwd的内容格式为:username:password
      启动服务的命令是:rsync --daemon
      默认去使用/etc/rsyncd.conf这个配置文件,也可以指定配置文件 rsync --daemon --config=/etc/rsyncd2.conf
      可使用的选项有: rsync --daemon --help
      几个测试点:port, use chroot, log file, secrets file, hosts allow, list

    转载于:https://blog.51cto.com/amazing61/2063827

  • 相关阅读:
    【C#进阶系列】06 类型和成员基础
    纪中5日T1 1564. 旅游
    纪中17日T1 2321. 方程
    纪中17日T2 2322. capacitor
    纪中10日T1 2313. 动态仙人掌
    纪中14日听课小结 图论 最短路 二分图 差分约束
    一个抓猫的游戏 消遣GAME 持续更新中!
    洛谷P1464 Function  HDU P1579 Function Run Fun
    洛谷P1976 鸡蛋饼
    纪中12日T1 2307. 选择
  • 原文地址:https://www.cnblogs.com/twodog/p/12137637.html
Copyright © 2011-2022 走看看