背景,配置好了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

rsync同步数据---把左边的文件全部拷贝到右边的更多相关文章

  1. Windows 之间用rsync同步数据(cwRsyncServer配置)

    rsync是一款优秀的数据同步软件,在跨服务器,跨机房,跨国备份服务器的首选工具,下面就来介绍下如何配置安装cwRsyncServer很大多数软件一样是B/C架构,cwRsyncServer是rsyn ...

  2. Linux运维: Rsync同步数据(ubuntu16.04+windows10)

    rsync同步数据 -环境:Linux (ubuntu16.04) + windows10 Linux: 安装 sudo apt-get install rsync rsync --version 查 ...

  3. 使用rsync 同步数据一些常用参数和示例

    rsync rsync是linux系统下的数据镜像备份工具.支持远程同步,本地复制,或者与其他SSH.rsync主机同步. 包括本地推到远程,远程拉到本地两种同步方式,也可以实现本地不同路径下文件的同 ...

  4. 用 rsync 同步本地和服务器的文件

    参考 DigitalOcean 安装 For Debian/Ubuntu: sudo apt-get install rsync For OpenSUSE/Fedora: sudo yum insta ...

  5. rsync同步数据

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

  6. 定时执行rsync同步数据以及mysql备份

    需求:把机器A中的附件.图片等,备份到备份机B中.将数据库进行备份 附件备份 在A中,启动rsync服务,编辑/etc/xinetd.d/rsync文件,将其中的disable=yes改为disabl ...

  7. 使用rsync同步数据(by quqi99)

    作者:张华  发表于:2015-12-28版权声明:能够随意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http://blog.csdn.net/quqi99 ) 急需使 ...

  8. 配置rsync 同步数据 rpm包安装rsync及配置

    [root@Hammer home]# rpm -qa |grep rsync #检查系统是否安装了rsync软件包rsync-2.6.8-3.1[root@Hammer CentOS]# rpm - ...

  9. 如何让myeclipse左边选中文件后自动关联右边树

    在左侧项目树的右上角下拉菜单里有link with editor 点击即可

随机推荐

  1. Linux命令学习<不断更新>

    没有系统的学习过Linux命令,遇到了就学习一下,慢慢积累. 1.echo 命令,学习网站『https://linux.cn/article-3948-1.html』. echo单词有回声.共鸣的意思 ...

  2. 课堂练习—hash

    课堂练习-hash 要求: 利用除留余数法为下列关键字集合的存储设计hash函数,并画出分别用开放寻址法和拉链法解决冲突得到的空间存储状态(散列因子取0.75) 关键字集合:85,75,57,60,6 ...

  3. [java][jboss]改变jboss部署目录(虚拟目录)

    原文: [java][jboss]改变jboss部署目录(虚拟目录) 在开发过程中,有时候我们希望将程序放在我们的源代码目录中,比如d:\code下,而不是放在jboss的deploy下,怎么办? 我 ...

  4. Educational Codeforces Round 13 D. Iterated Linear Function 水题

    D. Iterated Linear Function 题目连接: http://www.codeforces.com/contest/678/problem/D Description Consid ...

  5. BZOJ 1008 [HNOI2008]越狱 排列组合

    1008: [HNOI2008]越狱 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 4788  Solved: 2060[Submit][Status] ...

  6. UVALive 6662 TheLastAnt

    #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> ...

  7. MySQL多表联查之ThinkPHP中的实现

    创建两个表如图: sp_user表: sp_dept表: 目的:通过sp_user的dept_id查询所属部门即sp_dept中的name. 原生sq方法一:select t1.*,t2.name a ...

  8. BZOJ2831(小强的金字塔系列问题--区域整点数求法)

    题目:2831: 小强的金字塔 题意就是给出A,B,C,R,L,然后求 这里其实用到扩展欧几里德.(基本上参照clj的解题报告才理解的) 分析:我们先来分析一般情况: 这里我们假设A<C和B&l ...

  9. android aapt 用法 -- ApkReader

    aapt 是android assert packaging tool的缩写,具体如下: 1. 列出apk包的内容 aapt l[ist] [-v] [-a] file.{zip,jar,apk} - ...

  10. ParseFloat有超长的小数位数的解决

    描述一下sum=parseFloat(num1)+parseFloat(num2),这个个sum=113.32000000000002,最后用了个Math.round(sum* 100)/100,解决 ...