当前位置: 首页 > news >正文

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

 

相关文章:

  • 用简单代码看卷积组块发展
  • [译]前端离线指南(上)
  • 在应用开发中,网易云音乐如何兼顾质量和效益
  • 高级软件工程第八次作业:“两只小熊队”团队作业-5
  • JS基础(一)dom小实例
  • GitHub文件的克隆与上传
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • Git同时提交到多个远程仓库
  • 如果2020年出5G网络了,现在的手机是不是都被淘汰了?
  • 近似推断---高斯的变分混合
  • css教程
  • JSTL、EL、ONGL、Struts标签的区别与使用
  • 简单易用的leetcode开发测试工具(npm)
  • vue 轮播图插件 Vue-Awesome-Swiper
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • 「译」Node.js Streams 基础
  • Android 架构优化~MVP 架构改造
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • Angular 响应式表单 基础例子
  • HTTP中的ETag在移动客户端的应用
  • JavaScript设计模式与开发实践系列之策略模式
  • Odoo domain写法及运用
  • Rancher如何对接Ceph-RBD块存储
  • React16时代,该用什么姿势写 React ?
  • Spark学习笔记之相关记录
  • SpiderData 2019年2月16日 DApp数据排行榜
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • 初识MongoDB分片
  • 动态规划入门(以爬楼梯为例)
  • 对JS继承的一点思考
  • 警报:线上事故之CountDownLatch的威力
  • 马上搞懂 GeoJSON
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 网络应用优化——时延与带宽
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • 国内开源镜像站点
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • (02)vite环境变量配置
  • (Java)【深基9.例1】选举学生会
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (NSDate) 时间 (time )比较
  • (rabbitmq的高级特性)消息可靠性
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (力扣)循环队列的实现与详解(C语言)
  • (一)Neo4j下载安装以及初次使用
  • (转载)PyTorch代码规范最佳实践和样式指南
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .NET 使用 XPath 来读写 XML 文件
  • .NET6 命令行启动及发布单个Exe文件
  • .net6使用Sejil可视化日志
  • .NET牛人应该知道些什么(2):中级.NET开发人员