我没有任何重要的脚本编写经验,我对我正在处理的脚本感到困惑。
我在Linux中使用dynagen并创建了一个基本拓扑,其中包含两个路由器R1(fa0 / 0 = 10.1.1.1 /端口2101)和R2(fa0 / 0 = 10.1.1.2 /端口2102)。
我设法创建了一个python脚本并运行路由器,我可以启动和停止它们并打开控制台,我也可以从putty运行它们并执行相同的任务。
我需要一个脚本来自动telnet到我的Linux并提示我输入设备的用户名和密码/启动路由器/打开命令提示符/将当前运行的配置文件保存在文件夹/中。
< / LI> 醇>这是我到目前为止执行的第三项任务,它远程登录到我的Linux,但没有提示我输入用户名和密码,它只是打印它们,我坚持使用其余的。
#!/usr/bin/expect
set timeout 20
spawn telnet x.x.x.x
expect "login:"
expect "Username:"
send "user\r"
expect "Password:"
send "pass\r";
interact
感谢任何帮助。
答案 0 :(得分:0)
我在这里要做的是使用expect命令的regexp模式,并等待&#34; login:&#34;或&#34;用户名:&#34;。如下所示:
#!/usr/bin/expect
set timeout 20
spawn telnet x.x.x.x
expect {
-re "login:|Username:" {
send "user\r"
expect "*assword:"
send "pass\r"; #After this you may want to expect an appropriate prompt (>, $, #, or whatever) prior to handing control over to user
interact
}
timeout {
puts "Timed out while waiting for login prompt"
}
}
让我知道这是怎么回事。