[size=x-large]Linux 大文件拆分[/size]
远程传输大文件时,如果网络不稳定容易功亏一篑,此时可考虑将大文件按指定大小拆分成多个小文件,便于重传。
可通过对比文件传输前后的MD5码,判断文件是否损坏或被篡改。
以下以传输一个17G大文件(win2008.img)作完整示例:
[size=medium]1、计算大文件MD5码:[/size]
[size=medium]2、按固定大小500M进行拆分:[/size]
其中win2008.img为待拆分文件名,win2008为拆分生成文件名前缀,生成文件为
win2008aa、win2008ab.......win2008az、win2008ba....win2008bh
根据被拆分文件实际大小,最后一个小文件可能不足500M。
[size=medium]3、计算每个小文件的MD5码:[/size]
将输出的一列MD5码粘贴到excel中便于比对。
[size=medium]4、scp远程传输所有小文件。[/size]
[size=medium]5、传输完毕后,在目标机计算所有小文件MD5码,如果某个小文件和传输前对应小文件的MD5码不同则说明文件不正确,重新传输。[/size]
[size=medium]6、将小文件合并成大文件[/size]
分割的时候是按字母顺序排下来的,cat也是按照字母顺序处理的。
[size=medium]7、计算合成大文件的MD5码:[/size]
[size=medium]8、和传输前大文件MD5码一致表明大文件成功传输。[/size]
远程传输大文件时,如果网络不稳定容易功亏一篑,此时可考虑将大文件按指定大小拆分成多个小文件,便于重传。
可通过对比文件传输前后的MD5码,判断文件是否损坏或被篡改。
以下以传输一个17G大文件(win2008.img)作完整示例:
[size=medium]1、计算大文件MD5码:[/size]
md5sum win2008.img
[size=medium]2、按固定大小500M进行拆分:[/size]
split -b 500m win2008.img win2008
其中win2008.img为待拆分文件名,win2008为拆分生成文件名前缀,生成文件为
win2008aa、win2008ab.......win2008az、win2008ba....win2008bh
根据被拆分文件实际大小,最后一个小文件可能不足500M。
[size=medium]3、计算每个小文件的MD5码:[/size]
for var in $(ll |grep win2008 | awk '{print $9}'); do md5sum $var;done
将输出的一列MD5码粘贴到excel中便于比对。
[size=medium]4、scp远程传输所有小文件。[/size]
[size=medium]5、传输完毕后,在目标机计算所有小文件MD5码,如果某个小文件和传输前对应小文件的MD5码不同则说明文件不正确,重新传输。[/size]
[size=medium]6、将小文件合并成大文件[/size]
cat win2008* > win2008.img
分割的时候是按字母顺序排下来的,cat也是按照字母顺序处理的。
[size=medium]7、计算合成大文件的MD5码:[/size]
md5sum win2008.img
[size=medium]8、和传输前大文件MD5码一致表明大文件成功传输。[/size]