2017-08-09 33 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