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

Scripting 使用erlang作为/而不是expect脚本,scripting,erlang,Scripting,Erlang,我想通过SSH在一堆盒子上重置密码。关于如何将Erlang用于此目的的任何指示?只是不要将Erlang用于此类用途 阅读: Erlang特别适合哪种应用程序 分布式、可靠、软实时并发系统 电信系统,例如控制交换机或转换 协议 互联网应用服务器,如邮件传输代理、IMAP-4 服务器、HTTP服务器或WAP堆栈 电信应用,例如在移动网络中处理移动性 或者提供统一消息 需要软实时行为的数据库应用程序 Erlang擅长解决这类问题,因为这是 问题域它最初是 为……而设计。以书面形式说明上述情况 功能条款

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

只是不要将Erlang用于此类用途

阅读:

Erlang特别适合哪种应用程序

分布式、可靠、软实时并发系统

电信系统,例如控制交换机或转换 协议

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

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

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

Erlang擅长解决这类问题,因为这是 问题域它最初是 为……而设计。以书面形式说明上述情况 功能条款:

Erlang提供了一个简单而强大的 错误控制与故障诊断模型 公差监督过程

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

编写由在不同服务器上执行的部件组成的应用程序 机器,即分布式 应用程序很简单。二郎氏 分配机制是 透明:程序不需要透明 意识到它们是分布式的

OTP库为网络中的许多常见问题提供支持 以及电讯系统

Erlang运行时环境是一个虚拟机,很像Java 虚拟机意味着代码 在一个体系结构上编译运行 在任何地方运行时系统也 允许运行系统中的代码 在不中断系统的情况下进行了更新 节目

Erlang不特别适合解决什么样的问题

人们使用Erlang进行各种各样的操作 令人惊讶的事情,例如 在协议中与X11通信 水平,但是,有一些共同点 不太可能使用Erlang的情况 成为人们选择的语言

最常见的“少”类 “适当”问题的特点是 性能是首要要求 和常数因子有很大的影响 对性能的影响。典型的 例如图像处理,信号处理 处理、分拣大量 数据和低级协议 终止

另一类问题是 其特点是具有广泛的接口 现有的C代码。一个典型的例子是 实现操作系统设备 司机

最重要的是?开发大型系统 使用Erlang大量使用C进行 低级代码,将Erlang留给 管理容易损坏的部件 在其他语言中是复杂的,例如 控制系统分布在各个区域 几种机器及其实现 复杂的协议逻辑

正如安德烈·泽伊所建议的那样,你应该考虑其他方向。可能是关于StackOverflow的另一个问题,询问哪种语言适合。。。可能是第一步

更新

如果您仍然打算使用Erlang来重置密码,您可能还需要查看一下

从文件中读取:

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


对于这个问题,Erlang确实是一个非常合适的选择

你应该看一看这本书。与……建立联系

ssh:connect(Host, Port, Options).
然后使用执行正确的passwd命令提示:首先启动shell并注销

编辑:以上大部分是错误的


您甚至可以编写一个简单的服务器,在多台主机上并行执行所有这些操作,从而实现这个星球上最具多核功能的多主机ssh密码转换器。周末项目理念:利用它制作一个web应用。

第一步:决定为什么要使用Erlang而不是bash/perl/python来实现这一点。一旦您确定了您特别想要使用的功能,就可以更容易地提出一个解决方案来接受这些功能的advatange。为什么是Erlang?首先,有大量的机器需要保持密码同步。因此,并行运行多个任务会很好。其次,我想利用Erlang中的模式匹配。fabric等现有工具无法完成比简单的无密码登录或简单密码验证更复杂的工作。我也有更复杂的场景-过期的密码,提示
s用于新密码、重新键入、重试等。。。第三,我有一个在PW管理上有细微差别的机器组合。。。当然,Erlang可能有点过头了。请看上面的评论。FAQ上说它不是为了这个目的而做的,这并不能说明一种语言有多合适。有工具可以解决这个问题,而“不特别适合”一节甚至不适用。问题是,实际上我如何才能使用Erlang来解决这个问题,而不是我应该使用Erlang来解决这个问题……这很公平。这只是我的观点,是在使用Erlang ssh进行类似操作并意识到其他替代方法也可以以更简单的方式工作之后出现的。我的更多的是一个评论,而不是一个问题,但是放在那里太长了:我只是希望他不必处理受密码保护的公钥,因为它们不是由整个ssh应用程序处理的,除非OTP团队最近引入了它……嗯,不幸的是,我需要涵盖的情况,如:密码过期,请提供新的验证重新登录,因此整个预期问题。一旦你连接,你可以做几乎任何事情。