在开发过程中总会遇到这种情况,就是需要将一个文件从一个机器拷贝到其他的很多台机器中,最简单的方法是用U盘拷出来再一个一个机器的插进去拷贝,另一张方法则是利用飞鸽传书或者QQ等工具传输,但是都不是很方便,因为每次只能拷贝到一个机器。还有一种方法是讲此文件共享,但是这会带来很多权限的问题。

本文提高了一个可以同时将一个文件从一个机器拷贝到多台机器的方法,采用的方式是链式传输(参照的博客链接http://engineering.tumblr.com/post/7658008285/efficiently-copying-files-to-multiple-destinations),如下图所示。

本文的传输方式需要利用网络工具netcat,netcat号称Linux下的瑞士×××,一般在Linux中已经安装了。首先介绍机器1的shell脚本为tar cv some_files | pigz | nc hostname_of_first_box 1234

先将文件进行压缩,这里先用tar再用pigz使之变成tar.gz的形式,而gz的压缩没有使用gzip,而是使用pigz,因为pigz可以使用多核多线程的方式进行压缩,提高压缩速度(性能区别见博客http://imysql.cn/2012/12/03/using-pigz-instead-of-gzip.html)。压缩了以后利用netcat发送出去。

机器2和机器3的脚本为mkfifo myfifo

nc hostname_of_next_box 1234

nc -l 1234 | tee myfifo | pigz -d | tar xvf -

建立一个fifo,然后将接收到的文件送入fifo,然后fifo将文件再传到下一个机器中。同时将接收到的文件进行解压缩。

最后一个机器,机器4的脚本为nc -l 1234 | pigz -d | tar xvf -

同样也是接受文件,然后进行解压缩。

linux复制文件通信方式,Linux分布式文件拷贝相关推荐

  1. 从windows server的文件服务到分布式文件服务(一)

    一.序言 不知道大家是否考虑过服务器与终端机或者叫桌面机.工作站等的区别都有什么?也许你会说体积不同,也许你会说功能不同,甚至有些人会拉一个清单出来说说硬件上面的区别等.其实我最想说的是,两者最大的区 ...

  2. 从windows server的文件服务到分布式文件服务(二)

    四.默认共享描述 除非使用GHOST系统安装,当使用原版的系统光盘安装系统,默认安装会启动共享功能.说到共享,微软实际上提供了两种共享服务,一个就是打印机的共享服务,被称为"打印和文件服务& ...

  3. linux复制重命名 linux复制一个文件并重命名

    linux下怎么复制一个文件到另外一个目录并且重命名? 使用Linux的CP命令复制一个文件,并指定一个新的文件名作为目标文件参数,实现复制文件时重命名文件的功能.例如,下面的命令将/root/fil ...

  4. gfs文件存储服务器,GFS分布式文件存储系统(理论)

    GFS分布式文件存储系统(理论) 发布时间:2020-05-20 22:59:32 来源:51CTO 阅读:260 作者:wx5d2c2d660c282 GlusterFS概述 GlusterFS简介 ...

  5. 盘点分布式文件存储系统____分布式文件存储系统简介

    盘点分布式文件存储系统 在项目的数据存储中,结构化数据通常采用关系型数据库,非结构化数据(文件)的存储就有很多种方式,服务器本地存储.Nas挂载.ftp等等,今天就来盘点一下,分布式文件存储系统. 一 ...

  6. .net core 封装文件服务操作——分布式文件服务之OSS

    这里分享本人所写的文件微服务系统,在每个SAAS系统内,都或多或少的涉及到文件服务,我们既可以写的非常复杂,又可以写的简洁干练,不管怎么编写文件服务,但始终需要记住的是,一定要支持分布式文件服务,否则 ...

  7. 从windows server的文件服务到分布式文件服务(十)

    <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 九.  九.共 ...

  8. linux复制以a开头的文件,linux部分试题

    一. 单选题(共20题 每题1分 共 20分 ) 1. 下面哪个Linux命令可以一次显示一页内容?  C A. pause B. cat C. more D. grep 2. 怎样更改一个文件的权限 ...

  9. Linux复制一个或多个文件到另一个目录下

    使用参数 -R

最新文章

  1. linux文本处理常用命令
  2. 嵌入式开发调试学习与思考
  3. java的多态性学习代码
  4. 校验用户画像的准确性
  5. iPhone 14 Pro外观细节曝光:打孔屏加持 支持新一代的LTPO技术
  6. Java Spring AOP
  7. 欢迎关注我的微信公众账号:Linux技巧(微信号:irefactoring),一起学习Linux知识~~~...
  8. 麦克纳姆轮平台坐标系说明
  9. cc语言取消引用_「初识C语言」编译过程
  10. CDN设置回源host的意义
  11. Spring Cloud Sleuth链路跟踪之使用RabbitMQ异步收集链路跟踪信息(学习总结)
  12. Easyrecovery激活码生成器下载地址?
  13. 创建简单vue项目 / Webpack创建vue项目
  14. Flink Forward Asia Hackathon (2021) 回顾
  15. 一个https神奇的故事
  16. Java游戏培训机构哪家专业
  17. css3扭蛋机,微信小程序 扭蛋抽奖机CSS3动画实现详解_咋地 _前端开发者
  18. 10个Spring Boot 优秀学习项目
  19. Android-接入谷歌登录
  20. 计算机基础(笔记)——计算机网络(计算机网络中的安全)

热门文章

  1. oracle备份集注册,OracleRMAN将备份集重新注册到控制文件说明
  2. int 小数_[LeetCode] 166. 分数到小数
  3. idea会抛出Unable to import maven project: See logs for details错误
  4. apk闪退_你家的电视盒子总是闪退?别砸,问题都在这了!
  5. 专科计算机网络期末考试,计算机网络(专科)期末练习题.doc
  6. lua php 触摸精灵,lua程序设计主要学习路径
  7. 02.Python基础_标准数据类型_数值型_字符串
  8. nRF51822 SDK初体验
  9. 【软件设计师】2020-08-05
  10. JAVA秒杀mysql层实现_Java商城高并发秒杀系统架构分析设计与开发实战