之前在主产品用过一个运维同事写的工具,devpssh。可以通过指定主机列表来执行一条shell命令,然后获取到所有的返回结果,输出到屏幕上。
我个人觉得这个工具很实用,尤其是在有多台Nginx服务器的时候,由于负载均衡策略下,不同的请求可能会被下放到不同的get机,因此产生的日志文件就可能分布在多台机器上。如果我们一个个地到每台get机上去执行shell语句。首先工作量会很大,另外获取到的结果也不容易整理。而此时用一下devpssh,就没有这些负担了。
在正式介绍如何写一个这样的工具之前,先来看看需要哪些基础的知识。
- 主机间信任
- shell脚本
主机间信任
说到主机之间的信任,还是要将历史往前追溯一下。谈谈SSH。简单来说SSH是一种网络协议,用于计算机之间的加密登录。之所以是加密登录就是应为原始的用户远程登录是明文的,一旦被截获,信息就泄露了。
SSH是协议,具体有很多实现。有商业实现的,也有开源实现。不过大致来看,用法