使用erlang作为/而不是expect脚本

时间:2010-06-22 12:13:43

标签: scripting erlang

我想通过SSH在一堆盒子上重置密码。关于Erlang如何用于此目的的任何指针?

2 个答案:

答案 0 :(得分:1)

Erlang确实是解决这个问题的最佳选择。

你应该看一下ssh module。使用

开始连接
ssh:connect(Host, Port, Options).

然后使用ssh_connection module执行正确的passwd命令(提示:首先启动shell)并注销。

编辑:以上内容大多错误,this blog post might get you started faster.

您甚至可以编写一个简单的服务器,在多个主机上并行执行所有这些操作,从而在这个星球上产生最具多核功能的多主机ssh密码更换器。周末项目的想法:制作一个Web应用程序。

答案 1 :(得分:-2)

只是不要将Erlang用于此类事情。

here阅读:

  

Erlang特别适合哪种应用程序?

     
      
  • 分布式,可靠,软实时并发系统。

  •   
  • 电信系统,例如控制开关或转换   协议

  •   
  • 用于互联网应用的服务器,例如邮件传输代理,IMAP-4   服务器,HTTP服务器或WAP堆栈。

  •   
  • 电信应用,例如处理移动网络中的移动性   或提供统一消息。

  •   
  • 需要软实时行为的数据库应用程序。

  •   
  • Erlang擅长解决这些问题,因为这就是问题   最初的问题域   专为。说明以上内容   功能条款:

  •   
     

Erlang提供了一个简单而强大的功能   错误控制和故障的模型   容忍度(监督程序)。

     
      
  • 并发和消息传递是该语言的基础。   用Erlang编写的应用程序是   通常由数百或   数千个轻量级进程。   Erlang之间的上下文切换   过程通常是一个或两个   比数量便宜的数量级   在C中的线程之间切换   程序

  •   
  • 编写由不同部分执行的应用程序   机器(即分布式的)   应用程序)很容易。 Erlang的   分配机制是   透明:程序不一定   意识到它们是分发的。

  •   
  • OTP库为网络中的许多常见问题提供支持   和电信系统。

  •   
  • Erlang运行时环境(虚拟机,就像Java一样)   虚拟机)意味着代码   编译在一个架构上运行   任何地方。运行时系统也是   允许运行系统中的代码   更新而不中断   程序

  •   
     

Erlang不是特别适合哪种问题?

     

人们使用Erlang来做各种各样的事情   令人惊讶的事情,例如   在协议上与X11通信   水平,但是,有一些共同点   Erlang不太可能发生的情况   成为首选语言。

     

最常见的一类'少   适合的'问题的特点是   性能是主要要求   和具有大的常数因子   对绩效的影响。典型   例子是图像处理,信号   处理,分拣大量的   数据和低级协议   终止。

     

另一类问题是   具有广泛的接口特征   现有的C代码。一个典型的例子是   实现操作系统设备   驱动程序。

     

开发了大多数(全部?)大型系统   使用Erlang大量使用C语言   低级代码,让Erlang离开   管理倾向于的部分   复杂的其他语言,如   控制系统遍布   几台机器和实施   复杂的协议逻辑。

根据Andrzej的建议,你应该看看其他方向。也许StackOverflow上有一个不同的问题,问“哪种语言对......有好处”可能是第一步......

<强>更新

如果您仍打算使用Erlang重置密码,您可能也希望查看the Erlang SSH Channel Behaviour

阅读文档:

  

Ssh服务实现为通过ssh连接复用的通道   通过ssh连接协议进行通信。该模块提供了一个回调API   负责通用渠道方面,如流量控制和关闭消息,并让   回调函数负责处理特定于服务的部分。