免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5794 | 回复: 6
打印 上一主题 下一主题

shell 多线程问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-06-09 23:03 |只看该作者 |倒序浏览

  1. list=(a b c )
  2. for li in list
  3. do
  4.   rsync   remote:/a  本地:/somedir/
  5. done
复制代码
1. 我现在的问题是每次下载是单线程的,只能依次下载,能否实现多线程下载?即同时下载a b c。
2. 多个rsync同时运行,是否会真正提高下载速度?
   还是多个rsync的速度之和=单个rsync的速度?如何是,这样反而会降低下载速度,right?
   

论坛徽章:
0
2 [报告]
发表于 2012-06-09 23:12 |只看该作者
回复 1# unixthisyear


    放在后台执行,多进程

论坛徽章:
0
3 [报告]
发表于 2012-06-09 23:12 |只看该作者
放在后台执行,多进程

论坛徽章:
0
4 [报告]
发表于 2012-06-10 00:01 |只看该作者
本帖最后由 tsyj2007 于 2012-06-10 00:03 编辑
unixthisyear 发表于 2012-06-09 23:03
1. 我现在的问题是每次下载是单线程的,只能依次下载,能否实现多线程下载?即同时下载a b c。
2. 多个rsy ...


那个rsync那句是不是写错了?
  1. rsync   remote:/li  本地:/somedir/
复制代码
我不会perl,但是建议楼主学会google.

下面的代码来自http://www.sunjianhe.com/?p=959,楼主自行验证:
  1. #!/usr/bin/perl

  2. my $path = “/backup”; #本地目录
  3. my $ip=”192.168.x.x”; #远程目录
  4. my $maxchild=3; #控制同时并发的个数

  5. open FILE,”ls $path|”;
  6. while()
  7. {

  8. chomp;
  9. my $filename = $_;
  10. my $i = 1;
  11. while($i<=1){
  12. my $un = `ps -ef |grep rsync|grep -v grep |grep avl|wc -l`;
  13. $i =$i+1;
  14. if( $un < $maxchild){
  15. system(“rsync -avu –size-only $path/$_ $ip:$path &”) ;
  16. }else{
  17. sleep 5;
  18. $i = 1;
  19. }
  20. }
  21. }
复制代码

论坛徽章:
0
5 [报告]
发表于 2012-06-10 14:37 |只看该作者
for i in list
do
{
         代码
}&
done
wait

不知道这种方法能实现否?

论坛徽章:
0
6 [报告]
发表于 2012-06-11 16:14 |只看该作者
先将所有的任务提交到后台执行,然后监控后台是否执行完即可。
这里有个控制多个后台进程同时运行的函数,你可以参考下
http://blog.chinaunix.net/uid-15872117-id-3210568.html

论坛徽章:
1
辰龙
日期:2014-05-22 11:38:58
7 [报告]
发表于 2012-06-11 17:24 |只看该作者
e_member 发表于 2012-06-11 16:14
先将所有的任务提交到后台执行,然后监控后台是否执行完即可。
这里有个控制多个后台进程同时运行的函数, ...


看了下 好像脚本的作用是用来同步的,不是什么控制后台同时运行
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP