Chinaunix首页 | 论坛 | 博客
  • 博客访问: 206959
  • 博文数量: 39
  • 博客积分: 1057
  • 博客等级: 准尉
  • 技术积分: 926
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-27 20:13
文章分类

全部博文(39)

文章存档

2012年(24)

2011年(15)

分类: LINUX

2012-05-17 17:49:35

今天,抽空用erlang写了一个并发连接远程主机并执行相关任务的小程序,很简单,不过有对erlang的应用也有不小的启发。


点击(此处)折叠或打开

  1. %% func: 并发在远程执行任务
  2. %% author: lover
  3. -module(spawn_ssh).
  4. -compile(export_all).

  5. %% 控制并发数量
  6. loop_openssh(N) ->
  7. L = for(1,N,fun(X) -> spawn(?MODULE,openssh,[X]) end),
  8. io:format("~p~n",[L]).

  9. openssh(N) ->
  10. %% 这里是示例命令 ifconfig eth0
  11. %% 可以改造成为从io输入或者从文件获取命令
  12. %% 这里woker_nodes_XX是集群中的nodes主机的主机名字
  13. Ret = os:cmd(lists:concat(["echo 'ifconfig eth0' | ","ssh woker_nodes_",N])),
  14. GoodRet = string:tokens(Ret,"\n"),
  15. io:format("this is ~pth job~n++++++++++++++~n~p~n",[N,GoodRet]).

  16. %% 自定义的for循环
  17. for(N,N,F) -> [F(N)];
  18. for(I,N,F) -> [F(I) | for(I+1,N,F)].


阅读(1846) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~