天天看点

shell模拟多进程(1)

场景:

由于需要把http://x.x.x.x//VipProcessData/BasicObject/下的所有内容同步到远程另一个机器。BasicObject/目录下有9个目录每个目录下有200~1000个文件不等 文件小的几十k大的几百兆 总计270G

测试wget   xxxxxxx 只有1M/s的速度 如果同时启动n个wget  xxxxx基本能打到nM/s的速度。

由于"AreaObject  ClassObject  FullTextObject  FundObject  MediaObject  OrganObject“几个子目录下文件总计都不大 加起来也只有4~5G 因此这几个目录使用

wget -m -np  -c -nH  http://x.x.x.x/VipProcessData/BasicObject/$name/ ;下载

而其他几个目录 先把文件整理成url列表 然后以

wget -c -i /url1的方式来下载。

shell 以

{}&来模拟一个进程

因此:

可以看出 脚本先后同时启动n个进程,待进程全部结束后再启动n个进程。缺点,不能保障n个进程每次都能同时或者接近同时完成。因此实际上 上述脚本理论上最大的下载速度是6m/s (最开始同时启动了6个进程)之后就再也没有过同时达到6m/s的下载速度了。

目录遍历

继续阅读