• rsync工具


    rsync工具
    一、介绍
    1、可以实现 本地数据 《----------》 远程数据/本地数据  的传输
    2、两种通信方式(man rsync)
     (1)remote shell(一个冒号:),通过sshd协议传输
     (2)daemon (两个冒号 :: ) ,服务端开启一个守护进程demo并启动 rsync 服务,监听端口让客户端去连
    :: 后面是模块名字,不是机器上的绝对路径
     
    3、rsync 与 scp
     (1)都可以把本机数据拷贝到远程,把远程数据拷贝到本地,也支持本地到本地;支持网络通信
     (2)rsync支持增量备份,增量拷贝,节省带宽和时间
    即不会把之前拷贝到远程机器,但没有改动的数据覆盖,而是只把后来变动的部分拷贝过去
     
     
    二、参数说明
    rsync -avL
    1、-a 《===》 rlptgoD
      -r:同步目录
      -l:软链接     (-L:拷贝软链接的源文件)
      -p:权限
      -t:时间
      -g、o:属主属组
      -D:设备文件
    2、-v:可视化
    3、--delete:删除一致同步
    4、--exclude:过滤。同步排除某些文件或目录
    5、-u:如果目标文件比源文件还新,那么忽略该文件
    6、-P:看同步状态、进度
     
     
    三、 rsync两种工作模式
    实现 本机 <--------> 远程 数据传输
    机器一 : windysai   192.168.37.128   
    机器二 :  sai       192.168.37.131      
     
    【a】一般模式(复制) 走22端口,ssh协议   ——》假设128是本地机器,131是远程机器
    1、推送数据(push)
    (1)rsync -avPz    local/     192.168.37.131:/root/remote
     
    2、拉取数据(pull)
    (1)远程机器: 远程目录 本地
    rsync -avPz 192.168.37.131:/root/remote ./local/
     
    拉数据指定用10022端口
    rsync -avPz -e "ssh -p 10022"  192.168.37.131:/root/remote ./local/
     
    3、对比测试:    tree local;    tree remote/local
     
     
    【b】后台模式   ——》 假设128是rsync服务器,131是远程机器
    研发人员上线新版本,导致服务器挂了或者不正常,要进行版本回滚(恢复原来的状态, rsync服务器,容易出现 io压力,因为要上传。1k~2k压力可以扛得住)
     
    (1)客户端从服务端拉取数据:
    ----- 服务端操作
    1、编写rsync的配置文件: /etc/rsyncd.conf
    [root@windysai ~]# cat /etc/rsyncd.conf
     
     1 port=8730
     2 log file=/var/log/rsync.log
     3 pid file=/var/run/rsync.pid
     4 #address               # 启动rsync服务的ip
     5 
     6 [jiayi]           #服务端自定义的模块名
     7 path=/tmp/rsync  #数据存放路径
     8 use chroot=yes     #把同步的用户限定在path目录下,不能备份指向外部符号链接所指向的目录文件
     9 max connections=4   #0代表没有限制
    10 read only=yes
    11 list=yes      #允许列出模块名
    12 uid=root    #以哪个用户身份同步数据(属主属组)
    13 gid=root
    14 auth users=jiayi    #指定传输时使用的用户名;和secrets成对出现,如果两个同时注释,就是root拷贝
    15 secrets file=/etc/rsyncd.passwd    #存密码文件
    16 hosts allow=192.168.37.131   #白名单(没写:all) 指定被允许连接该模块的主机,多个ip用空格隔开
    2、编辑密码文件,保存并赋予600
    (1)vim /etc/rsyncd.passwd
    jiayi:123aaa # 用户名: 密码
    (2)chmod 600  /etc/rsyncd.passwd
     
    3、启动rsync服务(端口8730)
    rsync --daemon --config=/etc/rsyncd.conf    #时时生效,不用重启
     

    4、建立目录并创建测试文件

    (1)mkdir /tmp/rsync
    (2)echo "1.txt de content" >> /tmp/rsync/1.txt

    ----- 客户端操作

    客户端测试(sai:131)
    1、cat rsyncd.passwd
     123aaa
    2、chown jiayi:jiayi rsyncd.passwd
    3、chmod 600 rsyncd.passwd
     
    4、rsync -avzP --port 8730 jiayi@192.168.37.128::jiayi/1.txt ./ --password-file=/home/jiayi/rsyncd.passwd
    默认是连 873 端口
    ps :  如果没有配置1,2,3步,直接运行4,则终端需要输入密码: 123aaa  才可以传输
     
     
    (2)客户端推送数据到服务端:
    1、修改配置文件
    vim /etc/rsyncd.conf
    ——》 read only 改成 no
     
    2、客户端执行
    rsync -avzP --port 8730 /tmp/123 jiayi@192.168.37.128::jiayi/

    因为传输时没有指定--password-file,所以需要输入密码

     
    3、服务端查看
    cd /tmp/rsync
    ——》 有目录 123
     
     
     
  • 相关阅读:
    CF 142B Tprimes
    CF 231A Team
    poj 2001 Shortest Prefixes ——字典树入门
    hdu 1039 Easier Done Than Said?
    poj 2528 Mayor's posters
    hdu 1061 Rightmost Digit
    poj 2503 Babelfish
    CF271 A. Beautiful Year
    poj 2752
    CF271 B. Prime Matrix
  • 原文地址:https://www.cnblogs.com/windysai/p/6930943.html
Copyright © 2020-2023  润新知