<p>2015年我在参与一个通讯行业的DNS管理的系统,需求是从厂家的一些设备采集原始数据并分析,生成一定规则的DNS数据。</p>
当时连接设备有SSH和Telnet两种方式。做这个系统开始时没有经验,就在网上找相关的资料,想采用JAVA代码直接实现。
SSH采用的是ganymed-ssh2-build210.jar ,Telnet采用的是ommons-net-3.3.jar包,相关的代码网上很多,这个估计折腾了半个多月,最终已失败告终。
因为华为机器的登陆方式独特,这个公共包无法满足登陆并执行linux命令,并且有些机器用这些JAR包根本连接不上去。后来在我们老大的帮助下,提供了EXPECT方式。也就是我所提到的神器,解决了这个问题。
这个Expect是一个插件。安装说明
A. Tcl 安装
1.获取源码包,首先在特定目录下建一个expect,放源码包。
cd 特定目录
mkdir expect
tcl8.4.11-src.tar.gz
2.解压缩源码包,如果没有权限,用root赋权。
tar xfvz tcl8.4.11-src.tar.gz
3.安装配置
cd tcl8.4.11/unix
./configure --prefix=特定目录/expect/tcl --enable-shared
make
make install
安装完毕以后,进入tcl源代码的根目录,把子目录unix下面的tclUnixPort.h copy到子目录generic中。
暂时不要删除tcl源代码,因为expect的安装过程还需要用。
cp tclUnixPort.h ../generic
B. expect 安装
1.获取源码包
expect