• rsync同步数据---把左边的文件全部拷贝到右边


    背景,配置好了ssh 使用rsa pulbic key的方式登陆远程服务器。//ssh-keygen -t rsa -b 2048 -f andy-rsync-key -P ''

     https://help.ubuntu.com/community/SSH/OpenSSH/Keys

    然后就有了本篇的主体,通过rsync来同步远程和本地的数据。

    本篇的拓展,开发一个手机app, 通过http协议调用 php(或其他语言写的http接口), 实现自动化便捷控制。@todo

    --------------------------------------------------------------------------------------------------------------------------------

    rsync 用来同步两台主机上的目录(或文件)

    /home/fly/ljl

    rsync -chavzP --stats  .  120.79.14.84:/fly/ljl/

    -------------------------------------------------------------

    反过来,也是一样,把远程的同步到本地机器:

    rsync -chavzP --stats  120.79.14.84:/fly/ljl/*  .

    远程---》本地, 本地----》远程, 其实都是数据从左端-------》右端。(数据从左端流向右端, 从左端同步到右端)。

    注意:同步的时候,如果左端有新增或修改的文件(目录),右端也有新增的文件,左端的文件(新增或修改) 会同步到右端去, 右端上面新增的文件不会同步到左端, 右端上面修改的文件会被左端的覆盖
      也就是说,同步之后,右端的文件以左端的文件为最新版本,会把左边的文件全部拷贝到右边。右边自己已有的新文件不动。

     实际传输

     不加压缩参数 -z 的话,

    ---------------------------------------------------------------------------------------

    写成php的自动同步脚本:

    shell_exec()函数

    rsync.php

    <?php
    echo shell_exec("rsync -chavzP --stats .  120.79.14.84:/fly/ljl/");
    //或者改用绝对路径
    //echo shell_exec("rsync -chavzP --stats /home/fly/ljl/ 120.79.14.84/fly/ljl");

    运行一下这个 rsync.php文件就可以同步了。

    php rsync.php

    用反引号的方式: 

    <?php
    $m = `ls -al`;
    echo $m;
    

    PHP supports one execution operator: backticks (``),Use of the backtick operator is identical to shell_exec().

     -----------------------------------------------------------------------------------------------------------2018年12月11日-----------------

    补充: rsync 可以使用不同的端口,并不要求两台服务器的 ssh端口都一致

    下面本机的ssh 端口是 3000, 而远端的端口是 22

  • 相关阅读:
    宏定义define和const的区别
    C++11新特性(1)
    TCP协议
    sql查询 不等于的坑null
    To B市场品牌实战课 用产品故事引爆市场
    Tomcat在windows服务器下,将tomcat控制台日志记录到日志文件中
    极客时间返现小程序,全网最优惠返现最多
    分布式数据库,从功能特性到运行机制,讲透本质
    生财有术知识星球整理
    ff
  • 原文地址:https://www.cnblogs.com/oxspirt/p/10062930.html
Copyright © 2020-2023  润新知