在一些监控程序中,我们可以使用telnet服务。那么这里我们就介绍了一个Unix telnet的简短的例子来帮助大家分析效益爱。那么这段代码做了一个监控程序,触发事件后实现telnet到Sco unix执行命令并取得命令结果,想了几天终于完成,特和大家分享:
Unix telnet VFP代码部分:
- LOCAL telnet1
- telnet1=CREATEOBJECT("Dart.Telnet.1")
- Telnet1.Timeout = 100
- Telnet1.TermType = "vt100"
- False=.t.
- True=.t.
- vbCrLf=CHR(13)+CHR(10)
- ** logfile = "Host" + HostIP + ".log"
- ** Telnet1.Trace(logfile, False, True, vbCrLf + "---> ", vbCrLf + "<--- ")
- thisform.AddLog(Tsys_kind,"正在连接主机 " + HostIP + " ..." + vbCrLf)
- ok = Telnet1.Connect(HostIP, 23)
- IF ok=""
- thisform.AddLog(Tsys_kind,"银联前置["+HostIP+"]连接失败!同银联中心链路无法检查.")
- thisform.showinfo("99","错误:银联前置连接失败!")
- thisform.warn
- thisform.command4.Picture="deng3.gif"
- thisform.command4.refresh
- telnet1.close
- RETURN
- ELSE
- telnet1.close
- Telnet1.Timeout = 10000
- Telnet1.Connect(HostIP, 23)
- ENDIF
- thisform.AddLog(Tsys_kind,"已连接" + vbCrLf)
- Data = ""
- Telnet1.Search (@Data, "login:")
- * thisform.AddLog( Tsys_kind,Data)
- Telnet1.Send(User_name + vbCrLf)
- Data = ""
- Telnet1.Search(@Data, "Password:")
- * thisform.AddLog(Tsys_kind,Data)
- Telnet1.Send (User_pwd + vbCrLf)
- Data = ""
- Telnet1.Search(@Data, ">")
- *thisform.AddLog(Tsys_kind,Data)
- Telnet1.Send ("su" + vbCrLf)
- Telnet1.Search (@Data, "Password:")
- * thisform.AddLog(Tsys_kind,data)
- Telnet1.Send(root_pwd + vbCrLf)
- Telnet1.Search(@Data, "#")
- * thisform.AddLog(Tsys_kind,Data)
- Telnet1.Send(shell_cmd + vbCrLf)
- Telnet1.Search(@Data, "#")
- * thisform.AddLog(Tsys_kind,data)
- ***************取出的数据
- ok = VAL(STREXTRACT(data,"/","/",3))
- IF ok>WP04 && Warn Point
- thisform.showinfo("01","★警告:银联中心网络延时[9.234.12.21]!当前值:"+ALLTRIM(STR(ok,10,2))+"设定值:"+ALLTRIM(STR(WP04,10,2)))
- thisform.addlog(Tsys_kind,"★警告:银联中心网络延时[9.234.12.21]!当前值:"+ALLTRIM(STR(ok,10,2))+"设定值:"+ALLTRIM(STR(WP04,10,2)))
- ......&&触发事件
- ENDIF
以上Unix telnet的设置内容就完成了。