当前位置 : 主页 > 网络编程 > 其它编程 >

大批量文件迁移解决方案

来源:互联网 收集:自由互联 发布时间:2023-07-02
在我们日常工作中有很多的时候需要进行文件迁移但是诸如10T之类的大文件(里面包含若干小文件的时候)我们如果单单使用CP的命令进行迁移 在我们日常工作中有很多的时候需要进行文件
在我们日常工作中有很多的时候需要进行文件迁移但是诸如10T之类的大文件(里面包含若干小文件的时候)我们如果单单使用CP的命令进行迁移

在我们日常工作中有很多的时候需要进行文件迁移但是诸如10T之类的大文件(里面包含若干小文件的时候)我们如果单单使用CP的命令进行迁移的话

那么他的效率经过测试1分钟最多也就1G之内的效率。所以如何提高迁移效率呢我们就需要使用并发执行的方式进行

比如说/data目录中有100个文件夹需要迁移到本机器的/data2目录下。如何开展

简单的来说cp -r /data/ /data2 即可。但是这样迁移的话就会消耗大量的时间因为在/data下面还有很多文件夹逐级目录然后散列的一些小文件。

据统计效率应该在1G每分钟那么在线迁移10T消耗大约为10000分钟约为7天不包含之间有效率降低。

那么怎么做才能加快迁移效率呢很显然那就是多开CP命令将服务器的IO全部调用起来。

如何开

首先/data目录下面有几百个目录那么我们可以进行目录的提取如ls -l |awk {print $9} >> Folder.txt

编写批量迁移脚本

#!/bin/bash

cat Folder.txt.txt|while read line

do

{

cp -r $line /data2/

}但是加了 迅速执行下一个CP命令。

如果100个文件夹那么我们可以把时间缩短10倍。

这样是不是很简单的呢

同时迁移完成之后怎么进行文件一致性校验的呢这里介绍一个MD5文件校验。

MD5算法常常被用来验证网络文件传输的完整性防止文件被人篡改。MD5 全称是报文摘要算法(Message-Digest Algorithm 5)此算法对任意长度的信息逐位进行计算产生一个二进制长度为128位(十六进制长度就是32位)的“指纹”(或称“报文摘要”)不同的文件产生相同的报文摘要的可能性是非常非常之小的。

在Linux或Unix上md5sum是用来计算和校验文件报文摘要的工具程序。一般来说安装了Linux后就会有md5sum这个工具直接在命令行终端直接运行。

#!bin/sh

cat Folder.txt|while read line

do

{

find $line -type f -not \( -name .* \) -exec md5sum {} \; >>$line.txt

}里面包含了所有文件的信息

然后2个目录的文件进行 diff对比即可。

是不是简单方便很多的呀

来自 “ ITPUB博客 ” 链接http://blog.itpub.net/28869493/viewspace-2138701/如需转载请注明出处否则将追究法律责任。

网友评论