Новый выделенный сервер: приемка и проверка

  • Tutorial
Новый сервер: приемка и проверка

Начиная работу с новым сервером, нелишним будет проверить, соответствует ли он заявленной конфигурации. Многие начинающие пользователи испытывают затруднения в случаях, когда требуется просмотреть информацию о сервере с использованием команд, доступных только в консоли.

В этой статье мы расскажем о том, как можно получить спецификацию Linux-сервера в командной строке.


Общая информация о системе



Получить информацию о системе можно с помощью команды uname, которая пишет в стандартный вывод имя используемой операционной системы. Если указать одну из описанных ниже опций, на консоль будет выведена более специализированная информация о характеристиках системы:

# uname -a
Linux srv1 3.8.0-35-generic #50-Ubuntu SMP Tue Dec 3 01:24:59 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Имя операционной системы, дата компиляции ядра, версия и битность: Tue Dec 3 01:24:59 UTC 2013, 3.8.0-35-generic, i386 — 32 бита, x86_84 — 64 бита.

  • -а выводить всю возможную информацию;
  • -i показать информацию об идентификаторе ядра;
  • -m показать тип текущей аппаратной платформы;
  • -n показать имя системы;
  • -p показать тип процессорной архитектуры сервера;
  • -r показать информацию о релизе операционной системы;
  • -s показать имя используемой операционной системы;
  • -v показать информацию о версии используемой операционной систем.


Информацию об используемом дистрибутиве операционной системы можно также вывести при помощи команды cat /etc/issue:
# cat /etc/issue
Ubuntu 13.04 \n \l

Есть и другой способ просмотра информации о дистрибутиве:

# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 13.04
Release: 13.04
Codename: raring

Информация об аппаратных компонентах


Утилита lshw



Утилита lshw выводит на консоль полный список аппаратных компонентов системы вместе с информацией об устройствах. lshw включена во многие современные дистрибутивы Linux по умолчанию; если она отсутствует, ее можно установить стандартным менеджером пакетов:
# apt-get install lshw

Чтобы вывести на консоль информацию о «железе», нужно ввести следующую команду:

# lshw

Вывести эту информацию в сокращенном виде можно при помощи опции -short:

# lshw -short

С помощью lshw можно также просматривать и информацию об отдельных аппаратных компонентах системы. Для этого используется ключ -С, после которого указывается устройство, информацию о котором нужно вывести на консоль:
— процессор:
# lshw -C сpu

— память:
# lshw -C memory

— дисковая подсистема:
# lshw -C disk


Утилита lspci



С помощью утилиты lspci можно просмотреть информацию обо всех шинах PCI и подключенных к ним устройствах. Она входит в пакет pciutils, включенный в большинство современных дистрибутивов Linux; если он по каким-либо причинам отсутствует, его можно установить при помощи стандартного менеджера пакетов.

По умолчанию lspci показывает краткий список устройств; более подробную информацию можно получить при помощи многочисленных опций.

Опция -t отображает информацию о шинах и подключенных устройствах в виде дерева. В выводе будут указаны только цифровые идентификаторы устройств:

# lspci -t

-[0000:00]-+-00.0
           +-01.0-[01]--+-00.0
           |            \-00.1
           +-03.0-[02]--+-00.0
           |            \-00.1
           +-07.0-[04]--
           +-09.0-[05]--
           +-14.0
           +-14.1
           +-1c.0-[03]----00.0
           +-1d.0
           +-1e.0-[06]----03.0
           +-1f.0

Просмотреть цифровые коды устройств можно с помощью опции -n:
# lspci -n
01:00.1 0200: 14e4:1639 (rev 20)
02:00.0 0200: 14e4:1639 (rev 20)
02:00.1 0200: 14e4:1639 (rev 20)
03:00.0 0104: 1000:0079 (rev 05)
06:03.0 0300: 102b:0532 (rev 0a)

В начале каждой строки в выводе указывается код устройства в формате «:.», а далее — код в формате «:».

Чтобы в список были включены не только коды, но и имена соответствующих им устройств, указывается опция -nn:

# lspci -nn
01:00.0 Ethernet controller [0200]: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet [14e4:1639] (rev 20)
03:00.0 RAID bus controller [0104]: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] [1000:0079] (rev 05)
06:03.0 VGA compatible controller [0300]: Matrox Electronics Systems Ltd. MGA G200eW WPCM450 [102b:0532] (rev 0a)

Определить имя устройство по коду «:.» можно при помощи опции -s:

# lspci -s 03:00.0
03:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] (rev 05)

Чтобы определить устройство по коду «:,» нужно воспользоваться опцией -d:

# lspci -d 1000:0079
03:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] (rev 05)

После ключа -d можно указать только код поставщика или код устройства, например:

# lspci -d 8086:
# lspci -d :0532

В этом случае будет показан список всех устройств, соответствующих введенному коду.
Для просмотра информации о драйверах ядра, отвечающих за конкретные устройства, используется опция -k:

# lspci -k
00:1f.2 IDE interface: Intel Corporation 82801IB (ICH9) 2 port SATA Controller [IDE mode] (rev 02)
        Subsystem: Dell PowerEdge R610 SATA IDE Controller
        Kernel driver in use: ata_piix
        Kernel modules: ata_generic, pata_acpi, ata_piix
02:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)
        Subsystem: Dell PowerEdge R610 BCM5709 Gigabit Ethernet
        Kernel driver in use: bnx2
        Kernel modules: bnx2
03:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] (rev 05)
        Subsystem: Dell PERC H700 Integrated
        Kernel driver in use: megaraid_sas
        Kernel modules: megaraid_sas

Псевдофайловая система /proc



Информация об аппаратных компонентах в Linux-системах хранится в так называемой псевдофайловой системе /proc. Она называется псевдофайловой, так как является виртуальной и вообще не занимает места на накопителе. Большинство хранимых в /proc псевдофайлов представлены в понятной для человека форме. Дерево /proc используют многие программы, выводящие информацию о системе.

Процессор



Информация о процессоре хранится в псевдофайле /proc/cpuinfo. Чтобы просмотреть его содержимое, введем следующую команду:

# cat /proc/cpuinfo

В выводе этой команды содержится много различной информации: о модели процессора, количестве ядер, поддерживаемых технологиях аппаратной виртуализации и т.п.

Самый объемный и трудный для понимания раздел вывода — это, конечно же, flags (флаги). Они содержатся и в выводе команды lshw.

Рассмотрим значения наиболее важных флагов:

  • ht (HyperThreading) — поддержка технологий одновременной многопоточности; присутствует в сериях процессоров Intel Xeon, Pentium 4, Atom, Core i3, Core i5, Core i7;
  • lm (long mode) — указывается, если процессор выполнен по 64-битной технологии;
  • vmx (для Intel), svd (для AMD) — поддержка процессором технологий аппаратной виртуализации; означает наличие инструкций для предоставления прямого доступа к ресурсам процессора из гостевых систем;
  • aes — поддержка расширения системы команд AES;
  • hypervisor — указывается, если ОС запущена под гипервизором;
  • smx — поддержка технологий TXT (TPM).


Подробную информацию о значении всех флагов можно найти здесь и здесь.

Память



Просмотреть информацию об общем объеме свободной и используемой памяти, включая swap, можно при помощи команды free. Вывод этой команды может выглядеть, например, так:

# free -m
            total   	used    free    shared  buffers  cached
Memory:     3627   	3216    410     0       107      1157
-/+ buffers/cached: 	1950   	1676
Swap:       3762        31      3731

Опция -m указывает, что объем свободной и используемой памяти нужно выводить в мегабайтах. Чтобы отображать объем в гигабайтах, нужно указать ключ -g; это удобно для серверов с большим (исчисляемым десятками, а то и сотнями гигабайт) объемом оперативной памяти.

Еще более подробная информация хранится в псевдофайле /proc/meminfo.
Вывод команды cat /proc/meminfo включает следующие основные параметры:

  • MemTotal — доступный объем оперативной памяти;
  • MemFree — показывает, какой объем памяти в данный момент не используется и доступен для выделения процессам;
  • Buffers — область памяти, в которой хранятся данные, ожидающие записи на диск;
  • Cached — объем, занятый под кэш чтения страниц с диска;
  • SwapCached — объем, который был перенесен в область подкачки, а затем перемещен обратно в оперативную память;
  • Active — объем памяти, занятый наиболее часто используемыми страницами;
  • Inactive — объем памяти, занятый страницами, которые в настоящий момент не используются;
  • Swap {total, free} — общий объем области подкачки;
  • Dirty — так называемые «грязные» страницы (т.е. находящиеся в оперативной памяти, но еще не сброшенные на диск);
  • Writeback — страницы, сбрасываемые на диск в настоящий момент;
  • AnonPages — анонимные страницы (данные, используемые программами, но не ассоциированные с каким-либо файлом);
  • Mapped — общий объем памяти, перенесенный в виртуальное адресное пространство процессов при помощи mmap;
  • Committed_AS — количество памяти, выделенное всем процессам (даже если они при этом не используют ее в полном объеме).


Дисковая подсистема


Для проверки разбивки и количества дисков используется команда:

# fdisk -l 

Размер свободного и занятого дискового пространства во всех смонтированных файловых системах можно узнать с помощью команды df. С командой используются следующие опции:

  • -a вывести информацию обо всех файловых системах;
  • -h вывести информацию в человекочитаемом формате;
  • -T показать тип файловой системы;
  • -t вывести информацию только об указанных типах файловых систем.


Рассмотрим пример вывода команды df -h более подробно:

# df -h
Filesystem                Size  Used  Avail Use% Mounted on
/dev/mapper/vg0-vg0root   50G   15G   32G   32%  /
tmpfs                     5.9G 	0     5.9G   0%  /dev/shm
/dev/sda1                 1008M 62M   895M   7%  /boot
/dev/mapper/vg0-var       2.7T  839G  1.7T  33%  /var

Информация о размере фактического свободного пространства отображается в разделе Available. Если сложить цифры, указанные в разделах Available и Used, то полученная сумма не будет равна цифре в разделе Size. Это связано с тем, что часть дискового пространства отводится под системные файлы и метаданные.

Просмотреть подробную информацию о состоянии жесткого диска можно при помощи утилиты smartctl, включенной в официальные репозитории большинства современных дистрибутивов Linux. Для просмотра полной информации нужно ввести команду:

# smartctl -a /dev/sda

Об интерпретации вывода команды можно прочитать в этой статье.

Для отображения информации о физических томах используются команды pvdisplay, pvs и pvscan.

Команда pvscan проверяет все блочные устройства в системе на наличие физических томов:
# pvscan
  PV /dev/md0   VG vg0   lvm2 [462.96 GiB / 205.22 GiB free]
  Total: 1 [462.96 GiB] / in use: 1 [462.96 GiB] / in no VG: 0 [0   ]

С помощью команды pvdisplay можно просмотреть подробный многострочный вывод для каждого физического тома:

# pvdisplay
  --- Physical volume ---
  PV Name               /dev/md0
  VG Name               vg0
  PV Size               462.96 GiB / not usable 1.87 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              118517
  Free PE               52536
  Allocated PE          65981
  PV UUID               Idm6eZ-5vS0-IJCo-RDQq-WZNk-nJ22-eb7aDd

С помощью команды pvs можно настроить формат отображения данных (для каждого тома — одна строка).Это бывает полезно, например, при написании скриптов.

Для просмотра информации о логических томах жесткого диска используются утилиты lvs, lvscan и lvdisplay, входящие в пакет lvm2. lvm2 устанавливается при помощи стандартного менеджера пакетов:
# apt-get install lvm2

Команда lvscan выводит на консоль список всех имеющихся в системе логических томов (листинг фрагмента вывода):
# lvscan
  ACTIVE            '/dev/vg0/root' [18.62 GiB] inherit
  ACTIVE            '/dev/vg0/www' [200.00 GiB] inherit

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

# lvdisplay
  --- Logical volume ---
  LV Name                /dev/vg0/root
  VG Name                vg0
  LV UUID                yPtVFt-BON5-agWC-jXSr-cU4x-Tcu9-NRiwMF
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                18.62 GiB
  Current LE             4768
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

  --- Logical volume ---
  LV Name                /dev/vg0/www
  VG Name                vg0
  LV UUID                reCzuE-5dgN-A4eB-LubM-VtUA-Lclq-MUt5v6
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                200.00 GiB
  Current LE             51200
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

Команда lvs аналогична рассмотренной выше команде pvs: позволяет настроить формат отображения данных и выводит по одному тому каждой строке.

# lvs
  LV    VG   Attr   LSize   Origin Snap%  Move Log Copy%  Convert
  root  vg0  -wi-ao  18.62g
  www   vg0  -wi-ao 200.00g

Информация о состоянии активных программных RAID-массивов хранится в псевдофайле /proc/mdstat. Просмотреть его содержимое можно с помощью команды cat /proc/mdstat:

# cat /proc/mdstat

Personalities : [raid1] 
read_ahead 1024 sectors
md1 : active raid1 hda3[0] hdc3[1]
      522048 blocks [2/2] [UU]
md0 : active raid1 hda2[0] hdc2[1]
      4192896 blocks [2/2] [UU]
md2 : active raid1 hda1[0] hdc1[1]
      128384 blocks [2/2] [UU]

В рассматриваемом нами примере в системе содержится три массива. Для каждого из них в псевдофайле /proc/mdstat имеется отдельный раздел, содержащий следующую информацию:

  • имя RAID-массива;
  • состояние RAID-массива;
  • уровень массива;
  • имена физических разделов, входящих в состав массива;
  • число настроенных устройств и число работающих устройств в массиве;
  • состояние каждого работающего устройства (U означает, что устройство работает, а _ — что устройство отказало, sync — идет синхронизация).


Проверить, используется ли на сервере аппаратный RAID, можно с помощью уже знакомой нам команды lspci:

# lspci -nn | grep RAID

Если RAID используется, то на консоль будет выведен ответ типа:

02:00.0 RAID bus controller [0104]: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] [1000:0079] (rev 04)

Информацию о состоянии аппаратного RAID при помощи штатных средств операционной системы получить невозможно. Для этого существуют специальные утилиты: MegaCLI для LSI-контроллеров и Adaptec Storage Manager (asm) для adaptec. В официальные репозитории Linux-систем они не включены. Скачать megacli можно отсюда, a ASM — c сайта компании Adaptec.

Сетевые интерфейсы



Информация обо всех сетевых интерфейсах, подключенных к системе, содержится в псевдофайле /proc/net/dev. При вводе команды cat /proc/net/dev на консоль будет выведен список всех активных и неактивных сетевых интерфейсов.

Статус всех текущих интерфейсов можно просмотреть с помощью команды ip link show up.
Команда ip address выводит информацию обо всех сетевых интерфейсах:

# ip address
1: lo:  mtu 16436 qdisc noqueue state UNKNOWN
	link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
	inet 127.0.0.1/8 scope host lo
	inet6 ::1/128 scope host
  valid_lft forever preferred_lft forever
2: eth0:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
	link/ether 00:30:48:f2:7a:a0 brd ff:ff:ff:ff:ff:ff
	inet 5.178.83.252/29 brd 5.178.83.255 scope global eth0
	inet6 fe80::230:48ff:fef2:7aa0/64 scope link
  valid_lft forever preferred_lft forever
3: eth1:  mtu 1500 qdisc noop state DOWN qlen 1000
	link/ether 00:30:48:f2:7a:a1 brd ff:ff:ff:ff:ff:ff

UP означает, что интерфейс работает; NO CARRIER означает отсутствие кабеля или трансивера в порту сетевой карты. Команда ip route (сокращенный вариант — ip r) выводит на консоль таблицы маршрутизации.

# ip r
default via 88.93.16.185 dev br0
50.178.87.0/24 via 192.16.122.1 dev br0
10.0.0.0/8 via 192.16.122.1 dev br0
1.131.251.0/24 via 192.16.122.1 dev br0
192.16.122.0/24 dev br0  proto kernel  scope link  src 192.16.122.2
88.93.16.184/29 dev br0  proto kernel  scope link  src 88.93.16.186

Заключение



Эта статья является первой в цикле публикаций, посвященном проблематике настройки и администрирования веб-сервисов. В ближайшее время мы планируем опубликовать статьи об особенностях установки и оптимизации серверного ПО, диагностике неисправностей и т.п.

Мы будем рады, если в комментариях вы выскажете пожелания и предложения по тематике следующих публикаций цикла.

Читателей, которые по тем или иным причинам не могут комментировать посты на Хабре, приглашаем в наш блог.
Selectel 158,39
ИТ-инфраструктура для бизнеса
Поделиться публикацией
Комментарии 36
    +4
    Еще полезно перед приемкой запустить тест диска:
    smartctl --test=long /dev/sda и после его завершения еще раз посмотреть smartctl -a /dev/sda…
      +3
      Полезно выполнять нагрузочное 24-часовое тестирование, особенно если у вас нестандартная конфигурация сервера или вы не очень-то доверяете поставщику услуг.
        0
        Еще можно dbench запустить
        +4
        # cat /etc/issue

        Не-не-не. Этот файл в системе может вообще отсутствовать.
        Уж лучше тогда
        cat /etc/*rel*
        
          +4
          А еще можно dmidecode использовать для проверки, что за железо стоит.
            +3
            dmidecode хорошая утилита, и входит в состав всех дистрибутивов. А lshw меня подкупает ключем -short, всё-таки в dmidecode и lshw без этого ключа вывод очень длинный.
            0
            cat /etc/*rel*

            А вы пробовали так делать? =)
              0
              Что вас смущает?
                –1
                Вы по всей видимости убунтовед?
                ls -la /etc/*rel*
                -rw-r--r--. 1 root root     27 Nov 27 05:53 /etc/centos-release
                -rw-r--r--. 1 root root    152 Apr 29 07:29 /etc/lsb-release
                -rw-r--r--. 1 root root 255921 Apr 29 16:15 /etc/prelink.cache
                -rw-r--r--. 1 root root    789 Jul 19  2013 /etc/prelink.conf
                lrwxrwxrwx. 1 root root     14 Apr 29 07:27 /etc/redhat-release -> centos-release
                lrwxrwxrwx. 1 root root     14 Apr 29 07:27 /etc/system-release -> centos-release
                -rw-r--r--. 1 root root     25 Nov 27 05:53 /etc/system-release-cpe
                


                Попробуйте сделать
                cat /etc/prelink.cache
                  0
                  Кто обзывается, тот сам так называется ) Только Debian и CentOS
                  CentOS 6.4:
                  # ls -al /etc/*rel*
                  -rw-r--r-- 1 root root 27 Фев 25  2013 /etc/centos-release
                  lrwxrwxrwx 1 root root 14 Мар 18  2013 /etc/redhat-release -> centos-release
                  lrwxrwxrwx 1 root root 14 Мар 18  2013 /etc/system-release -> centos-release
                  -rw-r--r-- 1 root root 25 Фев 25  2013 /etc/system-release-cpe
                  

                  Ну и, соответственно:
                  # cat /etc/*rel*
                  CentOS release 6.4 (Final)
                  CentOS release 6.4 (Final)
                  CentOS release 6.4 (Final)
                  cpe:/o:centos:linux:6:GA
                  


                  То, что у вас стоит prelink — это, я подозреваю, один из частных случаев. На большинстве новых серверов его обычно нет по умолчанию. Зато куча всякого ненужного.
            –2
            Команда ip address выводит информацию обо всех сетевых интерфейсах:


            Команда ip address не выводит информацию о всех сетевых интерфейсах, а только о тех интерфейсах, на которых есть назначенные ip-адреса. Нет адресов — интерфейса не будет в выводе.
              +4
              datacompboy@nuuzerpogodible:~$ /sbin/ifconfig | grep eth
              datacompboy@nuuzerpogodible:~$ /sbin/ifconfig eth2
              eth2 Link encap:Ethernet HWaddr 74:d0:2b:10:48:2b
              BROADCAST MULTICAST MTU:1500 Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

              datacompboy@nuuzerpogodible:~$ ip addr
              1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
              link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
              inet 127.0.0.1/8 scope host lo
              valid_lft forever preferred_lft forever
              inet6 ::1/128 scope host
              valid_lft forever preferred_lft forever
              2: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
              link/ether 74:d0:2b:10:48:2b brd ff:ff:ff:ff:ff:ff
                0
                Пардон. С ifconfig'ом попутал, который down-интерфейсы игнорирует.
                  +1
                  datacompboy@nuuzerpogodible:~$ /sbin/ifconfig -a
                  docker0 Link encap:Ethernet HWaddr 56:84:7a:fe:97:99
                  inet addr:172.17.42.1 Bcast:0.0.0.0 Mask:255.255.0.0
                  UP BROADCAST MULTICAST MTU:1500 Metric:1
                  RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                  TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
                  collisions:0 txqueuelen:0
                  RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

                  eth2 Link encap:Ethernet HWaddr 74:d0:2b:10:48:2b
                  BROADCAST MULTICAST MTU:1500 Metric:1
                  RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                  TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
                  collisions:0 txqueuelen:1000
                  RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

                  lo Link encap:Local Loopback
                  inet addr:127.0.0.1 Mask:255.0.0.0
                  inet6 addr: ::1/128 Scope:Host
                  UP LOOPBACK RUNNING MTU:65536 Metric:1
                  RX packets:24397 errors:0 dropped:0 overruns:0 frame:0
                  TX packets:24397 errors:0 dropped:0 overruns:0 carrier:0
                  collisions:0 txqueuelen:0
                  RX bytes:7036234 (6.7 MiB) TX bytes:7036234 (6.7 MiB)
                    0
                    Вы ключик "-a" в компульсивном режиме добавили?
                      0
                      нет, я к тому, что ifconfig тоже умеет все показывать :) по дефолту, правда, скрывает (и это удобно по дефолту)
                        0
                        Ага, а я разобрался, почему я написал про ip addr. Дело в том, что обычно (для уменьшения вывода) я его использую как ip -4 a, а уж он-то список по ipv4 адресам фильтрует.
              +5
              хехе… у меня в чеклисте, для проверки нового сервера (как правило это какой-то клиентский сервер) есть такой скриптик который генерит мне вот такой вот вывод:
              postgres@db-m01:~$ ./bin/scrapper-client.sh --print-human
              Cpu:               2 x  AMD Opteron(TM) Processor 6272                 
              Memory:            physical memory: 65975640 kB; swap: 0 kB
              Storage:           Hewlett-Packard Company Smart Array G6 controllers (rev 01)
              Disks:             sda size 1117GiB
              Network:           4 Intel Corporation 82576 Gigabit Network Connection (rev 01)
              System:            db-m01 (1.2.3.4); Ubuntu 12.04.4 LTS; Linux 3.2.0-60-generic
              PostgreSQL ver.:   9.1.13 (recovery: f, replica count: 1)
              pgBouncer ver.:    1.5.4
              PostgreSQL databases: db_config (25 MB, UTF8, en_US.UTF-8); db_production (559 GB, UTF8, en_US.UTF-8). 
              


              Как раз собраны все эти тулзы (кроме lshw), но с учетом того чтобы не потребовалось root привилегий или доп. утилит
                +1
                Disks: sda size 1117GiB

                Это аппаратный рейд ведь, правда?)

                Кстати для аппаратных рейдов тоже есть очень приятные врапперы. Например, megaraidsas-status.
                  0
                  Да, за этим диском аппаратный рэйд.

                  Этим скриптом ищется только контроллер (в строке Storage:) и диски которые уже видит непосредственно ОС. Это сделано по следующим причинам:
                  1) вендорный ряд RAID-контроллеров достаточно разнообразен, и утилит для работы с ними тоже немало (сходу назову штук пять)
                  2) как правило эти утилиты не всегда установлены и даже не всегда есть в репозиториях.
                  3) и они требуют рута как правило (в этом я зачастую бываю ограничен)
                  Поэтому внутренности дисковой подсистемы я уже анализирую отдельно и только при наличии root, хотя скрипты для этого тоже есть.
                    0
                    Для аппаратных RAIDов есть Einarc — который, в общем-то, сам решает проблему и с установкой вендорских утилит и радикально упрощает их использование. Хотя да, рут почти для всех операций, кроме самых базовых, конечно, потребуется…
                      +1
                      Судя по исходникам Einarc, задумка у них и правда хорошая. Но у меня утилитка не поставилась :(

                      [root@ksstest einarc-2.0]# ./bin/einarc-install 
                      Einarc proprietary CLI installer
                      
                      Modules
                      -------
                      adaptec_arcconf
                      software
                      lsi_megacli
                      adaptec_aaccli
                      amcc
                      lsi_megarc
                      areca
                      
                      Preparing to download and install...
                      
                      Unfortunately, Einarc uses some proprietary command-line utilities to
                      control storages. Using it means that you agree with respective licenses
                      and download agreements. For your convenience, they are available in
                      agreements/ directory. Please read them and agree before proceeding.
                      
                      Either type "yes" if you have read and agreed to all the respective
                      licenses or reconfigure einarc disabling propriatery modules.
                      
                      Do you agree? yes
                      mkdir -p proprietary
                      wget -q -N -P proprietary http://download.adaptec.com/raid/storage_manager/arcconf_v1_1_20324.zip
                      mkdir -p tools/adaptec_arcconf
                      unzip -j proprietary/arcconf_v1_1_20324.zip linux_x64/arcconf -d tools/adaptec_arcconf
                      Archive:  proprietary/arcconf_v1_1_20324.zip
                        inflating: tools/adaptec_arcconf/arcconf  
                      chmod a+rx tools/adaptec_arcconf/arcconf
                      mv tools/adaptec_arcconf/arcconf tools/adaptec_arcconf/cli
                      touch tools/adaptec_arcconf/cli proprietary/arcconf_v1_1_20324.zip
                      mkdir -p proprietary
                      wget -q -N -P proprietary 'http://www.lsi.com/magic.axd?x=e&file=http%3A//www.lsi.com/downloads/Public/MegaRAID%2520Common%2520Files/8.07.07_MegaCLI.zip'
                      wget -q -N -P proprietary 'http://www.lsi.com/downloads/Public/MegaRAID%20Common%20Files/8.07.07_MegaCLI.zip'
                      make: *** [proprietary/8.07.07_MegaCLI.zip] Ошибка 8
                      

                      
                      [root@ksstest einarc-2.0]# wget http://www.lsi.com/downloads/Public/MegaRAID%20Common%20Files/8.07.07_MegaCLI.zip
                      --2014-04-29 15:49:30--  http://www.lsi.com/downloads/Public/MegaRAID%20Common%20Files/8.07.07_MegaCLI.zip
                      Распознаётся www.lsi.com... 192.19.195.176
                      Устанавливается соединение с www.lsi.com|192.19.195.176|:80... соединение установлено.
                      Запрос HTTP послан, ожидается ответ... 404 NOT FOUND
                      2014-04-29 15:49:31 ОШИБКА 404: NOT FOUND.
                      
                      
                      


                      Причем версия софта жестко зашита в Makefile утилитки… Т.е, к сожалению, проблему установки Einarc не решает. :(
                        0
                        То, что инструкции по скачиванию (и, как следствие, зачастую — версии ПО) будут жестко зашиты в скрипты — это в данном случае, к сожалению, неизбежно. Попробуйте версию из git — там по идее должно быть поправлено.
                0
                oleg@oleg:~$ ip help
                Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
                ip [ -force ] -batch filename
                where OBJECT := { link | addr | addrlabel | route | rule | neigh | ntable |

                Признаться, никогда б не догадался, что ip address можно целиком писать, думал что addr наиболее полное имя параметра :)
                  +2
                  ip a\ip r привычка — вторая натура.
                    0
                    Кстати, краткая запись где-то документирована, или используется substring-совпадение?
                      0
                      по подстроке не сработает. man ip => syntax
                  +2
                  еще бы добавил команды lsscsi — очень удобно. И dmidecode
                    0
                    Для дисков я обычно использую lsscsi
                      0
                      lsblk
                        +1
                        для FreeBSD:
                        1) пакет sysutils/sysinfo, далее sysinfo [cpu|mem|network|storage|...]
                        2) либо же так:
                        CPU: sysctl -a | egrep -iE 'hw.(machine|model|ncpu)'
                        MEM:
                        sudo grep -i memory /var/run/dmesg.boot
                        sysctl hw.physmem
                        swapinfo -m
                        PCI:
                        pciconf -lv
                        DISK:
                        sysctl -n kern.disks
                        gpart info /dev/da0
                        sudo camcontrol devlist
                        sudo diskinfo -v /dev/da0
                        gmirror status
                          0
                          Вместо ifconfig/ip address show, чтобы просто посмотреть список интерфейсов, делаю cat /proc/net/dev. Иногда еще lsusb бывает полезен (не на выделенных серверах, конечно).
                            +3
                            Есть ещё inxi, которая агрегирует данные, используя множество утилит (dmidecode, hddtemp, iproute2, lm_sensors, usbutils, mesa-demo, xorg-xdpyinfo, xorg-xprop, xorg-xrandr).

                            Примеры выхлопа утилиты:
                            inxi -b, сокращенный вариант
                            System:    Host: unterwelt Kernel: 3.14.2-1-ARCH x86_64 (64 bit) Desktop: KDE 4.13.0 Distro: Arch Linux 
                            Machine:   System: LENOVO product: 4286CTO v: ThinkPad X220
                                       Mobo: LENOVO model: 4286CTO Bios: LENOVO v: 8DET67WW (1.37 ) date: 12/05/2012
                            CPU:       Dual core Intel Core i5-2520M (-HT-MCP-) clocked at 806 MHz
                            Graphics:  Card: Intel 2nd Generation Core Processor Family Integrated Graphics Controller
                                       Display Server: X.Org 1.15.1 drivers: intel (unloaded: fbdev,vesa) Resolution: 1920x1080@60.00hz
                                       GLX Renderer: Mesa DRI Intel Sandybridge Mobile GLX Version: 3.0 Mesa 10.1.2
                            Network:   Card-1: Intel 82579LM Gigabit Network Connection driver: e1000e
                                       Card-2: Intel Centrino Advanced-N 6205 [Taylor Peak] driver: iwlwifi
                            Drives:    HDD Total Size: 256.1GB (68.3% used) 
                            Info:      Processes: 287 Uptime: 22:56 Memory: 6872.9/15936.0MB Client: Shell (zsh) inxi: 2.1.27
                            


                            Уровень детализации хорошо регулируется.
                              0
                              Вот за это спасибо! Куда быстрее, чем lshw
                                0
                                Тоже ставлю плюсик за inxi, вывод удобочитаемый и она достаточна гибкая. Можно даже топ процессов по потреблению памяти и процессора посмотреть, что можно использовать в каких-нибудь логгерах.

                                Но у меня скорость не выше, чем у lshw :(

                                root@komarov:~# time lshw > /dev/null 
                                                          
                                real	0m0.298s
                                user	0m0.272s
                                sys	0m0.016s
                                root@komarov:~# time inxi -v7 > /dev/null 
                                
                                real	0m1.969s
                                user	0m0.272s
                                sys	0m0.076s
                                root@komarov:~# time inxi -b > /dev/null 
                                
                                real	0m0.688s
                                user	0m0.136s
                                sys	0m0.056s
                                root@komarov:~# time lshw -short > /dev/null 
                                                          
                                real	0m0.298s
                                user	0m0.272s
                                sys	0m0.016s
                                
                                  0
                                  да, полный lshw на 1с быстрее чем inxi -v7:
                                  datacompboy@nuuzerpogodible:~$ time lshw > /dev/null
                                  real 0m3.003s
                                  datacompboy@nuuzerpogodible:~$ time inxi -v7 > /dev/null
                                  real 0m4.674s
                                  datacompboy@nuuzerpogodible:~$ time lshw -short > /dev/null
                                  real 0m2.923s
                                  datacompboy@nuuzerpogodible:~$ time inxi -b > /dev/null
                                  real 0m0.660s

                                  Но inxi показывает результаты в процессе дампа, а lshw курит бамбук и это напрягает :)
                                  тем более, что -v7 показывает больше, чем lshw

                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                            Самое читаемое