我正在尝试在C#VS中编写一些软件,这些软件将用于通过SSH连接到网络设备(思科交换机/路由器)并定期下载其配置。我已经尝试过SharpSSH,SSH.NET。前者过时且有问题,后者只是异常。我设法做的是使用plink通过Process类登录设备。使用重定向的IO我甚至设法打印出配置。不幸的是它没有全部打印出来。在几行之后,控制线停止输出并等待输入
R1#show running-config
Building configuration...
Current configuration : 890 bytes
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R1
!
boot-start-marker
boot-end-marker
!
enable secret 5 $1$Or0j$2.HDFSXaC9jh/KGxhyl6I1
!
no aaa new-model
memory-size iomem 5
ip cef
!
!
!
!
no ip domain lookup
--More--
像这样。这似乎是一个控制台问题,因为我将功能转为输出而无需等待设备。在那一刻发送任何东西我就像向设备发送命令所以我实际上不能要求更多输出(或者至少我没有找到方法)。这可能是控制台输出问题(询问是否输出更多)或StreamWriter是否已满。我的问题是:是否可以在控制台应用程序中关闭等待?如果不是 - 你会建议我做什么?欢迎任何想法。
kravvcu
答案 0 :(得分:1)
当然你可以关掉“--More--”。此命令将帮助您(在路由器和交换机上):
R1#terminal length 0
和这个(在Cisco ASA上)
terminal pager 0
答案 1 :(得分:0)
使用轻量级TFTP库并使用它而不是控制台下载?
http://www.codeproject.com/Articles/19314/A-simple-TFTP-client-using-C
如果您在控制台版本上设置,只需处理启动plink连接并从进程i / o读取配置。
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html