![使用 shell 脚本连接到 cisco 交换机](https://linux22.com/image/611195/%E4%BD%BF%E7%94%A8%20shell%20%E8%84%9A%E6%9C%AC%E8%BF%9E%E6%8E%A5%E5%88%B0%20cisco%20%E4%BA%A4%E6%8D%A2%E6%9C%BA.png)
我想运行一个日常脚本来清理我的交换机 arp。我在交换机上启用了 SSH。如何使用简单的 shell 脚本连接到交换机?我不确定如何提供 SSH 密码和启用密码。谢谢!!Dotan。
答案1
您需要将您的 bash 脚本与 expect 结合起来(它是一个用 Tcl 编写的脚本程序,用于自动执行其他交互式程序(例如 Cisco 的 IOS)的任务)
像这样,这里使用 telent,但可以帮助您入门:
#!/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"
希望这可以帮助。
答案2
对于这种简单的操作,我建议查看 kron,它是 IOS 中内置的调度程序,用于运行命令:例如,每天 7:44 清除 arp 启用
康福特
kron 策略列表 daily_arp cli 清除 arp
kron 每天发生 7:44 重复发生 策略列表 daily_arp
答案3
您可以使用“expect”工具连接到思科交换机并执行一些命令。
“Expect 是一个根据脚本与其他交互程序进行“对话”的程序。根据脚本,Expect 知道程序可以期望什么以及正确的响应应该是什么。解释型语言提供分支和高级控制结构来指导对话。此外,用户可以在需要时直接进行控制和交互,然后将控制权返回给脚本。”
更多细节这里