
У меня есть несколько систем (к сожалению, весьма разных типов, поколений и архитектур).
Мне нужно создать список оптоволоконных карт в этих различных системах.
Я могу использовать prtconf -v и сопоставлять его с prtdiag -v, а также, если нужно, luxadm или fcinfo, чтобы найти эту информацию, но, учитывая большое количество систем, которые мне предстоит обработать, меня интересуют две вещи.
1, если у кого-то есть готовый скрипт, который находит эту информацию.
2. Если кто-то знает супер-классный однострочный код, который бы извлек нужную мне информацию из приведенных выше команд, чтобы я мог просто написать оболочку для нее и не тратить неделю на вход в 4000 ящиков.
Опять же, я не столько ищу, как их найти (хотя, как всегда в Unix, TMTOWTDI, так что ваши комментарии приветствуются), сколько ищу скрипт, который, надеюсь, облегчит мне работу.
решение1
Не уверен, что вы имели в виду именно это:
Но вот способ проверить все ПОДКЛЮЧЕННЫЕ hba:
для i в ls /dev/rdsk/*s2; do luxadm display $i 2>&1|grep WWN|awk '{print $5}'; done |sort|uniq |xargs fcinfo hba-port -l |egrep 'Model'
Или чтобы получить все номера деталей системы, касающиеся карт HBA:
fcinfo hba-port|egrep 'Модель'|uniq
Я думаю, это то, что вам нужно, просто добавьте оболочку для подключения к целевым системам, и вы получите полный список HBA, которые есть на ваших серверах.
НТН
решение2
Будет верно одно из двух: 1) У вас будет много серверов 2) У вас будет не так много серверов (помогите мне, если я упустил возможность).
Если у вас не так много серверов, вы, вероятно, сможете провести инвентаризацию оборудования вручную и не будете спрашивать об этом. Если у вас есть значительное развертывание, то вам действительно стоит рассмотреть возможность использования чего-то вроде puppet на них. По сути, вам нужно что-то, что позволит вамразвернуть файлыивыполнять удаленные командыen masse. Как только вы это получите, большинство административных задач станутмногопроще.
Вы можете сэкономить время, просто отправив каждый узел по электронной почте, prtdiag
и вы сможете составить инвентарь, скопировав/вставив его в удобное для вас время.
Очевидно, что настройка puppet для этой одной задачи может быть излишней, но я полагаю, что в дальнейшем это определенно сэкономит вам гораздо больше времени и снимет с вас давление, связанное с необходимостью найти какую-то одну строку, чтобы сделать то, что вы хотите. Когда такие вещи появляются, вы просто развертываете скрипт в /tmp и выполняете его.
решение3
Какая версия Solaris? Если 10 или новее, вам стоит изучить ее fmtopo
и посмотреть, подойдет ли вам какая-либо из ее опций. ( /usr/lib/fm/fmd/fmtopo
)
Хотя я не уверен, что он обеспечивает необходимый вам уровень детализации, поскольку, насколько мне известно, он не перечисляет WWN.
решение4
Я наконец нашел то, что показалось мне идеальным ответом на мой собственный вопрос.
Недокументированная в настоящее время опция «-L» для dladm show-phys делает именно то, что мне было нужно.
пример:
root@server1:/tmp# dladm show-phys -L
LINK DEVICE LOC net0 igb0 /SYS/MB
net1 igb1 /SYS/МБ
net2 ixgbe0 PCI-EM2
net3 ixgbe1 PCI-EM2
net4 ixgbe2 PCI-EM10
net5 ixgbe3 PCI-EM10
net21 ibp2 PCI-EM1/PORT1
net22 ibp3 PCI-EM1/PORT2
net23 ibp4 PCI-EM9/PORT1
net24 ibp5 PCI-EM9/PORT2
root@server1:/tmp#