Linux如何提高大文件的拷贝效率

GuOJUnchao一

GuOJUnchao一

2016-02-19 08:56

下面请跟着图老师小编一起来了解下Linux如何提高大文件的拷贝效率,精心挑选的内容希望大家喜欢,不要忘记点个赞哦!

Linux系统操作中,当你在进行机器直接的拷贝时,遇到大文件的时候非常浪费时间,特别是将文件同时拷贝到多台机器上的时候,那么有什么好的方法能够提高大文件的拷贝效率呢?一起来学习下吧。

 Linux如何提高大文件的拷贝效率

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/diannaorumen/)

你可以从源机器逐个拷贝到逐台目标机器,但是往往时间也是成倍的。或者你也可以同时从源机器同时拷贝到多个目标机器,但是受制于源机器的带宽等因素,速度并不见得真的很快。

还好,借助一些UNIX工具可以做的更好。把tee和FIFO组合起来,可以形成一个文件快速分发链:处于分发链中的每台机器会保存文件,同时还分发给它的下一环。

首先,选定一台目标机器做为分发链的最后一环,在这台机器上只需要用nc监听(假定端口是1234),再通过管道由pigz解压缩,继续通过管道把数据交由tar来分解。

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

然后,再从分发链的末端往上走,设置其它目标机器,同样要经过监听、解压、分解,不过在解压之前我们通过tee命令将数据输出到命名管道(FIFO),另外的一条shell管道会将这些未解压的数据同时分发到分发链的下一环:

mkfifo myfifo

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

最后,在源机器上启动分发链,让数据传输到分发链的第一环:

tar cv some_files | pigz | nc hostname_of_first_box 1234

在我的测试中,分发链中的每台机器大概损失了3%-10%的性能(相对于1对1的拷贝而言),但是相对逐个逐个的拷贝或者单台机器向多台机器同时分发,效率提升是很明显的。

上面就是Linux提高大文件拷贝效率的方法介绍了,主要通过UNIX工具形成一个文件快速分发链来实现大文件的快速拷贝,效率提高了不少。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/diannaorumen/)
展开更多 50%)
分享

猜你喜欢

Linux如何提高大文件的拷贝效率

电脑入门
Linux如何提高大文件的拷贝效率

在Linux中如何提高文件系统的使用效率

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
在Linux中如何提高文件系统的使用效率

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Linux如何扩大文件打开的数量

电脑入门
Linux如何扩大文件打开的数量

Linux使用Tmux提高终端操作效率的方法

电脑入门
Linux使用Tmux提高终端操作效率的方法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

查找Linux系统中的大文件和大目录方法

服务器
查找Linux系统中的大文件和大目录方法

如何提高孩子的学习效率 提高学习效率的方法

育儿 幼儿 学习
如何提高孩子的学习效率 提高学习效率的方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Mac OS X 10.2键盘开关机操作技巧

Mac OS X 10.2键盘开关机操作技巧

MAC系统Apple TV如何设置环绕立体声

MAC系统Apple TV如何设置环绕立体声
下拉加载更多内容 ↓