2010-09-09 4 views
1

Мне нужен инструмент/скрипт для извлечения конфигураций сетевых карт с нескольких Linux-машин, в основном с Red Hat Enterprise 5. Я знаю только базовый bash, и мне нужно что-то, что можно запускать удаленно, вытаскивая имена серверов из CSV. Его также нужно быстро и легко запускать нетехническими типами с Windows-машины. Я нашел WBEM/CMI/SBLIM, но лучше не писать целое приложение на C++. Может ли кто-нибудь указать мне на инструмент или скрипт, который мог бы это сделать?Как получить конфигурацию сетевых карт удаленно с нескольких Linux-машин?

ответ

0

Для серверов Red Hat Enterprise 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

+0

Получил это. Вызов «less/proc/net/bonding/bond0» выводит режим соединения, где режим 1 активен/резерв. – Beege

+0

@Beege: Обратите внимание, что сетевой адаптер «активен» и который «пассивно» может меняться в любое время, поэтому он не является частью статической конфигурации. – caf

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-машины. После большего количества Googling, SharpSSH кажется, что это может быть решение, так как пользователи будут иметь Windows PowerShell на своих компьютерах, но мне еще предстоит сделать расширенное чтение. Для поиска информации о карте, я обязательно проверю ifconfig. Благодаря! – Beege

+0

Извинения за задержку. Мне нужно выяснить, есть ли в коробке несколько карт сетевого интерфейса, и если да, то они или нет. Мне также нужно найти, настроен ли один сетевой адаптер активным, а другой - пассивным. Не похоже, что ifconfig предоставляет эту информацию. – Beege

0

Если вы хотите использовать WBEM/CIM для этого (как указано в исходном вопросе), и вы предпочитаете среда сценариев на языке программирования, например C/C++/Java, тогда есть PyWBEM и PowerCIM как два способа сделать это в Python. Если это должен быть bash и т. Д., Тогда есть клиенты командной строки (такие как cimcli из проекта OpenPegasus или wbemcli из проекта SBLIM), и вы можете анализировать их вывод. Лично я предпочел бы подход на основе Python с использованием PyWBEM. Он очень прост в использовании, подключение к CIM-серверу - одна строка, и перечисление экземпляров CIM класса - еще одна строка.

На стороне системы Linux, которую вы хотите запросить, необходимо запустить CIM-сервер (tog-pegasus или sfcb) вместе с соответствующими пакетами поставщика CIM (sblim). Преимущество такого подхода заключается в том, что ваш интерфейс будет таким же, независимо от того, какой дистрибутив Linux вы используете. Анализ файлов конфигурации часто зависит от типа дистрибутива Linux, и я видел, как они меняются в разных версиях.

Одной из основных целей CIM является обеспечение надежных интерфейсов, которые совместимы в разных типах сред и которые изменяются только совместимо с течением времени.

Последнее, но не менее важное: использование CIM позволяет вам уйти без установки какого-либо программного обеспечения агента в системе, которую вы хотите проверить (если вы можете убедиться, что сервер CIM запущен).

Andy

 Смежные вопросы

  • Нет связанных вопросов^_^