Erlang并发执行远程任务

1889阅读 0评论2012-05-17 努力小伙
分类:LINUX

今天,抽空用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)].


上一篇:perl共享模块数据(以模块的形式存放配置信息)
下一篇:emacs官方中文手册