2010-09-09 78 views
1

我需要一個工具/腳本來從多臺Linux機器(主要是Red Hat Enterprise 5)獲取網卡配置。我只知道一些基本的bash,並且我需要一些可以從CSV中遠程運行的服務器名稱。它還需要通過Windows機器上的非技術類型快速輕鬆地運行。我找到了WBEM/CMI/SBLIM,但我寧願不寫一個完整的C++應用程序。任何人都可以指向我的工具或腳本,可以做到這一點?如何從多臺Linux機器遠程獲取網卡配置?

回答

0

對於紅帽企業Linux服務器,您可能只需從每臺服務器獲取/etc/sysconfig/networking/devices/中的文件的副本。您可以使用sftp客戶端來完成ssh

(該文件是包含網絡設備配置只是易於閱讀的文本配置文件)

+0

哦,嘿,找到了。你指出我正確的方向。/ etc/sysconfig/network-scripts /分別保存每個卡的配置,包括團隊(必須創建其配置文件)。你告訴內核有關/etc/modprobe.conf中的綁定。資料來源:http://www.cyberciti.biz/tips/linux-bond-or-team-multiple-network-interfaces-nic-into-single-interface.html - http://www.xcat.org/pipermail /xcat-user/2009-August/008479.html。但我也需要看看他們是否設置爲主動/被動。有任何想法嗎? – Beege 2010-09-14 14:48:34

+0

明白了。調用「less/proc/net/bonding/bond0」輸出綁定模式,其中模式1爲活動/備份。 – Beege 2010-09-14 14:55:47

+0

@Beege:請注意,哪個NIC是「活動的」,哪個「被動的」可以隨時更改,因此它不是靜態配置的一部分。 – caf 2010-09-14 22:39:53

0

你可以提供更多的細節,你需要拉什麼信息? ifconfig的各種參數給出了很多關於Linux機器網卡配置的信息,所以如果你可以這樣做,這將是非常容易的。簡單地寫了CSV轉換成東西分隔的空白的腳本,然後你可以這樣做:

#!/bin/bash 

for host in $HOSTS ; do 
    CARDINFO=`ssh $host 'ifconfig'` 
    # Do whatever processing you need on CARDINFO here 
done 

這是僞代碼的一個非常粗略的草圖。您還需要在要訪問的主機上設置無密碼SSH,但在Red Hat上這很容易實現。

+0

我還在等待需要收集的配置信息。我更擔心從遠程,遠程和Windows機器上關閉此功能。在更多谷歌搜索之後,SharpSSH似乎可能是一種解決方案,因爲用戶將在他們的計算機上安裝Windows PowerShell,但我還沒有對其進行擴展閱讀。爲了找到卡信息,我一定會檢查ifconfig。謝謝! – Beege 2010-09-09 20:24:14

+0

延遲道歉。我需要知道這個盒子是否有多個網絡接口卡,如果是的話,他們是否被聯合起來。我還需要查找一個NIC是否設置爲活動狀態,另一個是否爲被動狀態。似乎沒有ifconfig提供這個信息。 – Beege 2010-09-13 20:43:16

0

如果你想使用WBEM/CIM爲(在你原來的問題提到的),你喜歡通過編程語言(如C/C++/Java)編寫腳本環境,然後使用PyWBEM和PowerCIM作爲在Python中執行此操作的兩種方式。如果它需要bash等,那麼有命令行客戶端(例如OpenPegasus項目的cimcli或SBLIM項目的wbemcli),你可以解析它們的輸出。就個人而言,我更喜歡使用PyWBEM的基於Python的方法。使用起來非常簡單,連接到CIM服務器只需一行,並且可以枚舉類的CIM實例。

在您希望查詢的Linux系統一側,CIM服務器需要運行(tog-pegasus或sfcb)以及正確的CIM提供程序包(sblim)。這種方法的優點是無論您使用的是哪種Linux發行版,您的界面都是相同的。解析配置文件通常取決於Linux發行版的類型,我已經看到它們在不同版本之間發生變化。

CIM的一個主要目的是提供可靠的界面,這些界面在不同類型的環境中保持一致,並且隨着時間的推移只能兼容。

最後但並非最不重要的一點是,使用CIM可讓您無需在要檢查的系統上安裝任何代理軟件(只要您可以確保CIM服務器正在運行)即可離開。

Andy