前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大批量散装文件的迁移 原

大批量散装文件的迁移 原

作者头像
domain0
发布2018-08-02 11:53:38
4880
发布2018-08-02 11:53:38
举报
文章被收录于专栏:运维一切运维一切

有幸我遇到这样一个数据迁移场景: 有很多小文件散落到在不同的文件夹,我需要将这些小文件按照一定的规则找出来,然后将他转移到另外的一个文件系统。如果看到这个可能还会说这个场景不算奇葩,但是事情往往就是万万想不到,这个场景之下有一个比较恶心的网络策略限制,本来数据要从a机器传到b机器,但是a机器只能联通b机器的80端口。

开始我想通过ssh隧道技术将本地的ssh端口转接到80端口,可是这样一搞,ssh直接拒绝连接,我猜测ssh做了特别严格的限制,这也就意味着scp的方式是没办法了。

然后又想ftp能不能做到,可是ftp和nfs很类似,有专用的控制端口和数据传输端口,也就是说ftp至少需要两个端口才能完成数据传输。

网上有两个办法比较可行: nc -l 80 > file nc ip 80 < file 这种方式有一个缺陷,每次有且只能有一个客户端传输数据,否则数据就会混淆 不过这样的方式比较临时和轻便,是一个非常临时的高级办法。

开始我对rsync有一个错误的认识,我总以为rsync是一个同步对比文件夹的软件,把他的重点放在了文件的同步对比上了,rsync可以使用指定的单一端口完成大批量文件的同步传输,算是比较好的利器。如果rsync有比较强悍的php扩展就更加牛逼了,可以做非常好的文件同步服务。对业务的种种咳咳要求会比较ok

另外本次中我发现众多小文件打包也是一个难点,小文件太多,如果tar的时候再压缩,耗费的资源就会很多,进而大大影响效率,建议仅仅在数据传输的时候进行压缩,这样节省带宽和流量。 如果有需要可以采用虚拟磁盘镜像的技术采用多进程的方式对文件进行copy,这样能很快将大量小文件打包。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016/05/22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档