一。AIX简介
AIX全名为Advanced Interactive Executive,俗称“An IBM uniX”或“Advanced IBM uniX”。
作为综合评价第一的unix操作系统(D.H. Brown咨询公司,1998年 ),AIX是真正的第二代unix,具有性能卓越、易于使用、扩充性强、适合企业关键应用等众多特点。
支持300种以上的IBM软件和超过13000家独立软件厂商的软件产品。
是非常优秀的操作系统
在银行、电力系统、电信移动等企业应用很广泛
下面,我们介绍下对AIX系统的信息采集
二。
下面是一个利用apache commons-net 开源包, 使用telnet方式连接的工具类
实现对AIX主机信息的采集
因为提示符已经写死了,如果采用本例,请先按照自己的真实环境修改提示符和用户名和密码 等基本信息
- packagetest.collector.telnet;
- importjava.io.InputStream;
- importjava.io.PrintStream;
- importorg.apache.commons.net.telnet.TelnetClient;
- /**
- *利用apachenet开源包,使用telnet方式获取AIX主机信息
- *
- *@authorzhaoyl
- *@date20008.7.21
- *@version1.2
- */
- publicclassNetTelnet{
- //Telnet对象
- privateTelnetClienttelnet=newTelnetClient();
- privateInputStreamin;
- privatePrintStreamout;
- //提示符。具体请telnet到AIX主机查看
- privatecharprompt='#';
- //telnet端口
- privateStringport;
- //用户
- privateStringuser;
- //密码
- privateStringpassword;
- //IP地址
- privateStringip;
- publicNetTelnet(){
- try{
- //AIX主机IP
- this.ip="10.1.2.222";
- this.password="loeisdke";
- this.user="whdiwpasdq232sd2323";
- this.port="23";
- telnet.connect(ip,Integer.parseInt(port));
- in=telnet.getInputStream();
- out=newPrintStream(telnet.getOutputStream());
- //登录
- readUntil("login:");
- write(user);
- readUntil("Password:");
- write(password);
- readUntil(prompt+"");
- }catch(Exceptione){
- e.printStackTrace();
- }
- }
- /**
- *读取分析结果
- *
- *@parampattern
- *@return
- */
- publicStringreadUntil(Stringpattern){
- try{
- charlastChar=pattern.charAt(pattern.length()-1);
- StringBuffersb=newStringBuffer();
- charch=(char)in.read();
- while(true){
- sb.append(ch);
- if(ch==lastChar){
- if(sb.toString().endsWith(pattern)){
- returnsb.toString();
- }
- }
- ch=(char)in.read();
- }
- }catch(Exceptione){
- e.printStackTrace();
- }
- returnnull;
- }
- /**
- *写
- *
- *@paramvalue
- */
- publicvoidwrite(Stringvalue){
- try{
- out.println(value);
- out.flush();
- }catch(Exceptione){
- e.printStackTrace();
- }
- }
- /**
- *向目标发送命令字符串
- *
- *@paramcommand
- *@return
- */
- publicStringsendCommand(Stringcommand){
- try{
- write(command);
- returnreadUntil(prompt+"");
- }catch(Exceptione){
- e.printStackTrace();
- }
- returnnull;
- }
- /**
- *关闭连接
- *
- */
- publicvoiddisconnect(){
- try{
- telnet.disconnect();
- }catch(Exceptione){
- e.printStackTrace();
- }
- }
- publicstaticvoidmain(String[]args){
- try{
- NetTelnettelnet=newNetTelnet();
- //通过aix的命令“查找主机名称”获取数据
- //命令是"hostname"
- //不熟悉命令的参考<<AIX网络管理手册>>
- Stringresult=telnet.sendCommand("hostname");
- System.out.println(result);
- //最后一定要关闭
- telnet.disconnect();
- }catch(Exceptione){
- e.printStackTrace();
- }
- }
- }