深层次目录海量小文件 传输

案例:tom blog的file服务器,因为所有的图片都是以/data/xxx/xxx/blog/yeah/month/day/article/xxx.jpg,文件不大,但是目录深,数量多。
以ftp,sftp传大量小文件毫无疑问非常慢;而rsync是需要文件遍历之后再传输的,rsync给每个文件的每层目录都分配一个FD(文件描述符),对系统资源浪费极大,几个小时都还没遍历完。
这样的情况下,下面的传输方法就非常实用:
tar -cf - /data/xxx/xxx/blog | ssh user@dst_host tar -C target_dir -xvf -
将目录打包到标准输出,再通过ssh通道传送到远端之后解包。
这个命令的机制是不遍历的,又不需要占用系统太多的FD,是个折衷的办法,能解决文件备份的问题。

PS:
如果我要
tar -cf - /data/xxx/blog |ssh root@dst_host tar -cf target_dir.tar -
 行不?

或者换一种说法:
我现在机器上硬盘空间不够了

想把目录用tar 打成包传到另一台机器上(本机不留,因为没有空间了)
上面命令可以吧?
解决方法:
tar -cf - /data/xxx/blog | ssh root@host "cat > my.tar" 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值