今天,抽空用erlang写了一个并发连接远程主机并执行相关任务的小程序,很简单,不过有对erlang的应用也有不小的启发。
- %% func: 并发在远程执行任务
- %% author: lover
- -module(spawn_ssh).
- -compile(export_all).
- %% 控制并发数量
- loop_openssh(N) ->
- L = for(1,N,fun(X) -> spawn(?MODULE,openssh,[X]) end),
- io:format("~p~n",[L]).
- openssh(N) ->
- %% 这里是示例命令 ifconfig eth0
- %% 可以改造成为从io输入或者从文件获取命令
- %% 这里woker_nodes_XX是集群中的nodes主机的主机名字
- Ret = os:cmd(lists:concat(["echo 'ifconfig eth0' | ","ssh woker_nodes_",N])),
- GoodRet = string:tokens(Ret,"\n"),
- io:format("this is ~pth job~n++++++++++++++~n~p~n",[N,GoodRet]).
- %% 自定义的for循环
- for(N,N,F) -> [F(N)];
- for(I,N,F) -> [F(I) | for(I+1,N,F)].
阅读(1859) | 评论(0) | 转发(0) |