我想开发一种工具来自动进行网络故障排除。今天,我使用了自己创建的Shell脚本,它使用了 bash 和 expect ,但是问题是我只能在脚本末尾使用数据。>
当前功能: bash 脚本向用户请求一些信息(用户,密码,IP,MAC),然后 bash 脚本启动一个 expect 脚本输入到我的网络设备上,运行预定命令列表,并且在 expect <完成后,输出记录在 bash 脚本的变量中/ em>脚本, bash 脚本作用于数据解析器。
我想做些更“智能”的事情,在设备上输入,并且每个命令都可以单独处理,而无需运行所有可能的命令,返回命令行,执行解析器,并根据输出再次执行所有操作
我需要一些“较少代理”,并且我正在使用Linux。我可以使用哪种编程语言/框架?你能给我一些想法和提示吗? (我不需要GUI,只是命令行很完美)
我使用SSH输入设备(在某些情况下,我需要使用SSH输入跳转服务器,并在其中使用脚本输入设备)。命令示例:
显示ip bgp摘要
ping xxx.yyy.zzz.www
显示端口X
显示vlan X
和其他几个
如果我还不清楚,请提前告知我。
答案 0 :(得分:-1)
在常见情况下,您应该尝试通过network documentation浏览Ansible。
对于更特殊的情况,我强烈推荐Netmiko。这是一个Python库,提供了类似于期望的界面并处理了许多网络ssh怪癖。
要使命令通过跳转框运行,您可以查看ssh config选项以转发命令。然后,脚本的命令将自动通过跳转框进行代理。抱歉,我不记得确切的选项,找到魔术组合可能很痛苦。
您还应该考虑加入Network To Code Slack community。在这里,您可以快速提问,也可以将初学者与专家相提并论。