« »
2011-08-29Python

153

Python 进行SecureCRT的批量操作

#$language = “Python”
#$interface = “1.0″
#主机配置文件
# ip 登录类型 登录用户 密码 归属系统 操作系统类型 记录日期 // 超级用户密码

  1. def config():
  2.     config_host_list=[
  3.         ["10.203.1.1",
  4.                  "SSH2",
  5.                  "linuxany",
  6.                  "*****",
  7.                  "TD db1",
  8.                  "solairs10",
  9.                  "2011-03-18",
  10.                  "*****"],
  11.  
  12.         ["10.203.12.33",
  13.                  "TELNET",
  14.                  "linuxany",
  15.                  "****",
  16.                  "TDserver02",
  17.                  "solairs10",
  18.                  "2011-03-18",
  19.                  "******"]
  20.     ]
  21.     return config_host_list
  22. #导入主机配置数据
  23. ip_list=config()

  1. #导主配置文件
  2. def get_hosts():
  3.     G_get_ip = crt.Dialog.Prompt("请输入主机:", "天名辅助", "132.108.19.1", False)
  4.     if G_get_ip == "":
  5.         crt.Dialog.MessageBox("主机信息有误")
  6.         return "no"
  7.     else:
  8.         return str(G_get_ip)
  9.       # User added data
  10.  
  11. def Create(check_ip):
  12.     check='n'
  13.     for i in ip_list:
  14.         if ( check_ip == i[0]):
  15.             G_ip=i[0]
  16.             G_type=i[1]
  17.             G_login=i[2]
  18.             G_passwd=i[3]
  19.             if (G_type == "SSH2"):
  20.                 Mess("正在登录[SSH2]-->"+i[4])
  21.                 crate_ssh2_session(G_ip,G_login,G_passwd)
  22.                 crt.Screen.Synchronous = True
  23.                 check='y'
  24.             elif (G_type == "TELNET"):
  25.                 Mess("正在登录[TELNET]-->"+i[4])
  26.                 crate_telnet_session(G_ip,G_login,G_passwd)
  27.                 crt.Screen.Synchronous = True
  28.                 check='y'
  29.             break
  30.     #配置文件中无相关设备信息,则自动退出程序
  31.     if (check=="n"):
  32.         crt.Dialog.MessageBox("配置文件中找不到相关设备信息")
  33.         crt.Quit()
  34.        
  35. def exec_user_command(user_command):
  36.     if (crt.Screen.WaitForString(">", 3) != True):
  37.         crt.Screen.Send("exit \n")
  38.     else:
  39.         crt.Screen.Send(user_command+" \n")
  40.         SetStatusText("Mess" + user_command+" is running END")
  41.    
  42. def crate_telnet_session(ip,login,passwd):
  43.     errcode = 0
  44.     try:
  45.         Temp_T_Tab=crt.Session.ConnectInTab("/TELNET "+ip)
  46.         Temp_T_Tab.Screen.WaitForString("ogin:",2)
  47.         Temp_T_Tab.Screen.Send(login+"\r")
  48.         Temp_T_Tab.Screen.WaitForString("assword:",2)
  49.         Temp_T_Tab.Screen.Send(passwd+"\r")
  50.         crt.Session.SetStatusText("TELNET<--->["+ip+"]")
  51.     except ScriptError:
  52.         errcode=crt.GetLastError()
  53.     if errcode !=0:
  54.         crt.Dialog.MessageBox("连接失败!网络不通或者配置有误")
  55.     else:
  56.         crt.Dialog.MessageBox("登录成功,请进行操作")
  57.  
  58. def crate_ssh2_session(ip,login,passwd):
  59.     errcode = 0
  60.     try:
  61.         Temp_S_Tab=crt.Session.ConnectInTab("/SSH2 /PASSWORD "+passwd+" "+login+"@"+ip,True)
  62.         crt.Session.SetStatusText("SSH2<--->["+ip+"]")
  63.     except ScriptError:
  64.         errcode=crt.GetLastError()
  65.     if errcode !=0:
  66.         crt.Dialog.MessageBox("连接失败!网络不通或者配置有误")
  67.     else:
  68.         crt.Dialog.MessageBox("登录成功,请进行操作")
  69.  
  70. def Mess(mess):
  71.     crt.Dialog.MessageBox("提示:"+mess)
  72.    
  73.  
  74. #start run
  75. ip=get_hosts()
  76. if (ip != 'no'):
  77.     Create(ip)
  78. else:
  79.     crt.Dialog.MessageBox("配置文件中找不到相关设备信息")
  80.    
  81. #result = crt.Dialog.MessageBox("Login Failed, Retry?", "Error", ICON_QUESTION | BUTTON_YESNO | DEFBUTTON2 )
  82. #if result == IDNO:
  83. #  return

您还可能感兴趣的内容

日志信息 »

该日志于2011-08-29 21:38由 admin 发表在Python分类下, 你可以发表评论。除了可以将这个日志以保留源地址及作者的情况下引用到你的网站或博客,还可以通过RSS 2.0订阅这个日志的所有评论。

没有评论

发表评论 »


返回顶部