使用 shell 脚本连接到 cisco 交换机

使用 shell 脚本连接到 cisco 交换机

我想运行一个日常脚本来清理我的交换机 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 知道程序可以期望什么以及正确的响应应该是什么。解释型语言提供分支和高级控制结构来指导对话。此外,用户可以在需要时直接进行控制和交互,然后将控制权返回给脚本。”

更多细节这里

相关内容