2017-08-09 25 views
1

我有一个由另一组人员创建的python脚本,该脚本将一个命令发送到第1层设备,该设备根据连接提供反馈,如果该连接处于活动状态或不活动状态。但是,脚本一次只能执行一个端口,这使得通过24/48端口需要大量人力。在另一个命令中重复使用命令/收集结果以供重用

实施例:

python portquery.py -status (name of device)-(port) 

它给出的“连接”或“未连接”或“端口未找到”(因为该端口不例如开关上存在)的反馈。

所以我开始思考如果可以重复那个没有指定端口的脚本并且它从端口1开始,并在它获得反馈“端口未找到”时停止它将结果保存到文件或某种形式的阵列,然后我可以使用该设置在与“未连接”端口相同的交换机上添加或修改VLAN。

例如:

$ python repeatquery.py (name of device) 
Port 1 - Connected 
Port 2 - Not Connected 
etc etc 
Port 49 - Port not found 

老实说,我不知道如何开始进行这项工作或者是什么,这将被称作因为我的工作围绕事物的硬件方面的旋转。我只是想知道在哪里看。我查看了重复命令和右边的“类似问题”边栏。我猜这可能是我在这里看到的一个复杂的概念?

+0

你已经采取了看看'portquery.py'?也许你可以复制它的作用,但在一个循环中 - https://docs.python.org/3/tutorial/controlflow.html#for-statements – wwii

回答

0

没有代码,很难向您显示如何做到这一点。但是,在代码中可能有一个函数用于查询,而函数被调用。你可以调用更改为类似:

for x in range(0, 47): 
    do_the_function(x) 

或者,你可以写一个小bash脚本它调用的Python脚本48倍。 东西沿线的(我不知道,如果你需要从0端口47或1至8):

#!/bin/bash 
for number in {1..48} 
do 
python checkport.py number 
done 

然后你让bash脚本可执行文件。你叫脚本 “checkallports.sh”:

> chmod +x checkallports.sh 

然后,你可以把它叫做:

> ./checkallports.sh 
+0

这是一个开始。谢谢。我想知道是否可以修改它以包含具有许多不同名称的设备的设备名称。 ie:./checkallports.sh switch001 – sysengelca

+0

是的。您可以在脚本中将该参数称为$ 1。如果你需要更多的参数,他们是2美元,3美元等。 – Basya