我想运行一个每日脚本清理我的开关arp。 我在交换机上启用了SSH。 如何使用简单的shell脚本连接到交换机? 我不知道如何提供SSH密码和启用密码。 谢谢!! 多坦。
您需要将您的bash脚本与预期结合起来(这是一个用Tcl编写的脚本程序,可以自动执行其他交互式程序的任务,例如Cisco的IOS)
像这样的东西,它在这里使用远程,但会让你开始:
#!/usr/bin/expect -f #! /bin/bash #set force_conservative 0 ; # set to 1 to force conservative mode even if # script wasn't run conservatively originally if {$force_conservative} { set send_slow {1 .1} proc send {ignore arg} { sleep .1 exp_send -s -- $arg } } set timeout 3000 log_user 1 set var1 [lindex $argv 0 ] set var2 [lindex $argv 1] puts $var1 puts $var2 spawn telnet $var1 expect "Username: " send -- "myciscouser\r" expect "*assword: " send -- "mypassword\r" log_user 1 expect "*>" send "en\r" expect "*assword: " send -- "myenablepassword\r" expect "$var2" send-- "show clock\r" send -- "exit\r"
希望这可以帮助。
对于这样简单的行为,我build议看一下内置的调度程序来在IOS中运行命令:例如,清除ARP每天7:44启用
conf t
kron policy-list daily_arp cli clear arp
kron出现在每日7:44的周期性政策列表daily_arp
您可以使用“expect”工具连接到Cisco交换机并执行一些命令。
“Expect是一个程序,可以根据脚本与其他交互式程序”交谈“。在脚本之后,Expect知道程序可以期待什么,以及正确的响应是什么。解释型语言提供分支和高级控制结构指导对话,另外,用户可以在需要的时候直接控制和交互,然后对脚本进行控制。
更多细节在这里