如何使用TCL脚本自动化控制台场景?

如何使用TCL脚本自动化控制台场景?,tcl,expect,Tcl,Expect,我想自动化以下场景: 登录路由器 装填 重新加载路由器时,连续按ESP键 按ESP键时,将出现boot>提示。在本例中执行一些命令 我可以使用“Teraterm”和控制台手动执行上述操作。但是如何在TCL脚本中实现这一点 请帮我做这个 谢谢, Balu P.您首先需要找到一个可以从中发出命令的交互式控制台程序。您可能会发现PuTTY套件中的plink.exe非常合适。系统telnet.exe不合适,因为它上面设置了一个防止自动化的特殊标志,TeraTerm不合适,因为据我所见,它是一个GUI程序

我想自动化以下场景:

  • 登录路由器
  • 装填
  • 重新加载路由器时,连续按ESP键
  • 按ESP键时,将出现boot>提示。在本例中执行一些命令
  • 我可以使用“Teraterm”和控制台手动执行上述操作。但是如何在TCL脚本中实现这一点

    请帮我做这个

    谢谢,
    Balu P.

    您首先需要找到一个可以从中发出命令的交互式控制台程序。您可能会发现PuTTY套件中的

    plink.exe
    非常合适。系统
    telnet.exe
    不合适,因为它上面设置了一个防止自动化的特殊标志,TeraTerm不合适,因为据我所见,它是一个GUI程序(GUI程序自动化至少很难说,如果有更简单的方法,你可能不想这么做)

    一旦可以交互地完成任务,请将其插入expect脚本中。这相当直截了当

  • spawn
    开始,使程序运行并传入连接到其他系统所需的参数
  • 与远程系统交互。
  • 使用
    expect
    收听合适的提示。(请记住,这可能包括发送用户名和密码的提示!)
  • 告诉它如何处理
    send
    。请记住,
    \r
    是您发送报税表的方式
  • 完成后,
    关闭

  • 当然,当您同时处理条件、错误条件和超时时,事情会变得更加复杂
    expect
    可以处理这些问题,但代码要复杂一些。当您遇到我们可以帮助您解决的具体问题时,请询问另一个问题。

    我已使用console server将此过程自动化。工作正常

    您在哪个站台?(答案将涉及Expect,但了解该平台将有助于人们为您编写代码。)ESP是escape键吗?它有时可能会在控制台中生成
    ^[
    ?我编写了以下TCL/Expect脚本“启用\r”期望“*#”#发送“配置终端”\r“#期望“*#”#发送“自\r”期望“*#”发送“重新加载\r”期望(y/n):“发送”y\r“20000后;#需要在这里连续按ESP键。我想在这里等待启动提示时按ESP键。请帮助我这样做。@balu:请用代码更新您的帖子。在注释中添加代码会使您难以阅读和理解。这是什么
    ESP
    键?您是指退出(esc)吗?”键?@Hai Vu..谢谢你的评论。我是指键盘上的“Esc”键。我是新来的,你能指导我如何在评论块中输入代码吗?我试着插入4个空格,如“”URL所示。请指导我这样做。嗨,多纳尔·费罗斯,谢谢你的帮助。我试着使用plink。我能够连接到路由器。但是当我给出重新加载时“Its显示致命错误:由对等方重置连接”。我想在路由器重新加载时按连续退出键以获得引导>提示。是否有任何方法通过TCL/Expect脚本访问该路由器的控制台。请帮助我完成此操作。我已使用控制台服务器、反向telnet选项来自动执行此场景,并且工作正常。