使用plink和批处理文件的多个命令用于Cisco交换机

问题描述 投票:0回答:1

我目前正在尝试编写脚本来更改200多个Cisco交换机的位置(snmp)。我的问题是我不能一次运行多个命令。我已经制作了一个批处理文件,该文件自动连接到交换机并读取列出命令的.txt文件。但是无论我做什么,我得到的最好结果是仅执行了第一个命令。

批处理文件:

cmd.exe /c echo n | "Filepath(plink)" -ssh Switch Hostname -l Username -pw "Password" -m "txt File"

txt文件:

conf t
snmp-server location test
end
wr
exit

我已经尝试过txt文件中的其他分隔符,例如“;”。 “ |”等等但是似乎没有任何效果。

希望有人可以帮助我解决这个问题。

提前感谢。

batch-file putty cisco plink
1个回答
0
投票

实际上是Cisco的一个已知限制,它不支持SSH“ exec”通道命令中的多个命令。

PuTTY / Plink手册的引用部分3.8.3.6 -m: read a remote command or script from a file

对于某些服务器(尤其是Unix系统),您甚至可以在该文件中放入多行并依次执行多个命令或整个Shell脚本;但这可以说是一种滥用,并且不能期望它在所有服务器上都能正常工作。 特别是众所周知,[[not与某些“嵌入式”服务器,例如Cisco路由器一起使用。


尽管实际上,您的命令可能不是独立的顶级Shell命令。我猜-m(及其他)是snmp-server

subcommands

,不是吗?因此,即使Cisco确实在“ exec”通道上支持多个命令,您的代码也不起作用。有关详细信息,请参见conf t

您需要执行How to type commands in PuTTY by creating batch file?,然后将其子命令提供给其标准输入。

喜欢这个:

conf t

© www.soinside.com 2019 - 2024. All rights reserved.