Основные действия
Настройку IPMI я, пожалуй, опущу, т.к. в базовом варианте она состоит только в подключении сетевого интерфейса и нахождении на корпусе или материнской плате наклейки с паролём.
Подключение к BMC
- Скачать и установить Java-машину, если таковой еще нет;
- подключиться браузером к web-интерфейсу BMC-модуля и авторизоваться;
- перейти «Remote Control → Console Redirection» и нажать «Launch Console»;
- запустить скачанный файл «launch.jnlp», подключившись к «Java iKVM Viewer».
Монтирование образов
Этот способ прекрасно работает при подключении к рабочей сети по VPN через Интернет, хотя установка и занимает достаточно значительное время.
- Открыть окно виртуальных хранилищ, перейдя в «Virtual Media → Virtual Storage»;
- на закладке «Device1» в списке «Logical for Device1» выбрать «ISO File»;
- нажать «Open Image», выбрать дистрибутив Windows Server и нажать «Plug in»;
- на закладке «Device2» повторить действия 2 и 3 для образа с драйверами.
В этом самом месте я провел достаточно много лишнего времени, т.к. пытался подключить ISO-образ системы и образ дискеты с драйверами, лежащие на сетевом ресурсе в офисе, через web-интерфейс в разделе «Virtual Media → Floppy Disk/CD—ROM Image» – это по какой-то причине не работает! При таком способе подключения образ системы как-то не так монтируется и загрузиться с него в UEFI режиме невозможно, также, как и с образом дискеты происходит что-то не менее непонятное.
Настройка UEFI-BIOS
- Войти в «Aptio Setup Utility», т.е. BIOS;
- на закладке «Advanced» открыть раздел «PCH SATA Configuration»;
- параметр «Configure SATA as» установить в значение «RAID»;
- параметр «SATA RAID Option ROM/UEFI Driver» в значение «EFI»;
- для всех дисков, если надо, установить параметр «SATA Device Type» в «Solid State Drive»;
- выйти из текущего раздела, зайти в раздел «Intel(R) VOC SATA Controller» и создать нужные массивы;
- перейти на закладку «Boot»;
- установить параметр «Boot mode select» в значение «UEFI»;
- проверить, чтобы параметр «LEGACY to EFI support» был «Disable»;
- установить «Boot Option #1» в значение «UEFI USB CD/DVD:UEFI: ATEN Virtual CDROM YSOJ»;
- установить «Boot Option #2» в «UEFI Hard Disk»;
- остальные режимы загрузки от греха подальше отключить;
- перейти на закладку «Save & Exit» и нажать «Save Changes and Reset».
Установка Windows
При таких настройках установка системы в режиме UEFI проходит как обычно. Естественно, в окне «Где вы ходите установить Windows?» нужно нажать «Загрузить → Обзор → CD-дисковод «VROC», выбрать папку «VROC_XX_iaStorE_win8_64», нажать «Ок» и «Далее».
Теперь, как говорится, можно «откинуться на спинку кресла и отдохнуть»… особенно, если вы дома, сервер в офисе, а между вами непонятно какой Интернет!
Информация о процессоре
Посмотреть модель и тип процессора в Ubuntu можно с помощью еще одной встроенной утилиты — lshw. Если запустить ее без ключей, то она выдаст очень много информации обо всех компонентах системы. Если вдруг у вас не окажется ее в системе, то поставить очень просто:
apt install lshw
Чтобы посмотреть информацию только о процессоре, используйте отдельный ключ для этого.
lshw -c cpu
С помощью lshw вы посмотрите следующие характеристики процессора в Ubuntu (на примере моего скриншота):
Производитель процессора | Intel Corp. |
Тип микросхема материнской платы | Intel 440FX |
Слот установки процессора | slot: CPU 0 |
Частота процессора | 2GHz |
Разрядность | 64 bits |
Набор инструкций | fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx x86-64 constant_tsc nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm cpuid_fault pti |
Количество ядер | cores=4 |
Так же подробную информацию о процессоре можно получить с помощью dmidecode.
dmidecode --type processor
Вывод этой команды немного по-другому структурирован, но по содержимому практически идентичен lshw.
cat /proc/cpuinfo
Здесь вы увидите отдельную информацию по каждому ядру процессора. Скорее всего она будет одинакова и совпадать с тем, что вы увидели от других утилит.
Если вас окружили демоны — логируйте их немедленно!
Один из самых простых и банальных способов проверить, что происходит в системе, — это посмотреть системные логи. Вот тут можно почитать о том, какие секреты скрываются в каталоге
/var/log и откуда они там берутся. До недавнего времени основным механизмом записи логов был syslog, точнее, его относительно современная реализация rsyslog. Она до сих пор активно используется.
А что в авангарде? В современных дистрибутивах Linux на основе systemd используется свой механизм логирования, которым можно управлять через утилиту journalctl. Там есть крайне удобная фильтрация по разным параметрам и прочие плюшки.
Сам же systemd до сих пор остается довольно жарким топиком для обсуждения, поскольку «подминает» под себя многие устоявшиеся инструменты и предоставляет альтернативы к существующим решениям. Например, как запускать какой-то процесс регулярно? Crontab? Вовсе не обязательно, теперь у нас есть systemd timers. А как насчет настройки реакций на системные и «железные» события? В systemd есть поддержка watchdog. А что там со сменой корня — старый добрый chroot? Необязательно, теперь есть новенький systemd-nspawn.
pmap — Использование памяти процессом
Команда pmap сообщает о карте памяти процесса. используйте эту команду для поиска узких мест памяти. Информация о процессе с pid # 47394: Вывод:
47394: /usr/bin/php-cgi Address Kbytes Mode Offset Device Mapping 0000000000400000 2584 r-x-- 0000000000000000 008:00002 php-cgi 0000000000886000 140 rw--- 0000000000286000 008:00002 php-cgi 00000000008a9000 52 rw--- 00000000008a9000 000:00000 0000000000aa8000 76 rw--- 00000000002a8000 008:00002 php-cgi 000000000f678000 1980 rw--- 000000000f678000 000:00000 000000314a600000 112 r-x-- 0000000000000000 008:00002 ld-2.5.so 000000314a81b000 4 r---- 000000000001b000 008:00002 ld-2.5.so 000000314a81c000 4 rw--- 000000000001c000 008:00002 ld-2.5.so 000000314aa00000 1328 r-x-- 0000000000000000 008:00002 libc-2.5.so 000000314ab4c000 2048 ----- 000000000014c000 008:00002 libc-2.5.so ..... ...... .. 00002af8d48fd000 4 rw--- 0000000000006000 008:00002 xsl.so 00002af8d490c000 40 r-x-- 0000000000000000 008:00002 libnss_files-2.5.so 00002af8d4916000 2044 ----- 000000000000a000 008:00002 libnss_files-2.5.so 00002af8d4b15000 4 r---- 0000000000009000 008:00002 libnss_files-2.5.so 00002af8d4b16000 4 rw--- 000000000000a000 008:00002 libnss_files-2.5.so 00002af8d4b17000 768000 rw-s- 0000000000000000 000:00009 zero (deleted) 00007fffc95fe000 84 rw--- 00007ffffffea000 000:00000 ffffffffff600000 8192 ----- 0000000000000000 000:00000 mapped: 933712K writeable/private: 4304K shared: 768000K
Последняя линия очень важна:
- mapped: 933712K общий объем памяти выделенный на файлы
- writeable/private: 4304K объем частного(private) адресного пространства
- shared: 768000K объем памяти используемый этим процессом совместно с другими
Монтирование устройств
Команда | Описание |
---|---|
mount /путь_к_директории/образ.iso -o loop /media/iso | Монтирование образа iso в созданную/имеющуюся директорию /media/iso |
mount file.iso /media/iso/ -t iso9660 -o loop | Монтирование образа iso в созданную/имеющуюся директорию /media/iso |
umount /media/iso/ | Размонтирование образа из директории /media/iso/ |
modprobe loop | При «Ошибка подключения ISO образа». Невозможно найти ни одного устройства обратной связи. Может быть ядро не знает об устройствах обратной связи.(В этом случае перекомпилируется ядро или выполните modprode loop) |
ls /home | grep back | Узнать существует каталог vps-backup для монтирования по команде mount /home/vps-backup, при ее отсутствии терминал вернет — mount: /home/vps-backup: Нет такого файла или каталога |
mount | grep /dev/sdb | Посмотреть куда примонтирован «sdb» |
mount | column -t | Получить информацию о текущих смонтированных файловых системах с удобным оформлением по столбцам |
findmnt | Отображает информацию в виде красивого дерева и сама форматирует столбцы, а также может найти нужную файловую систему |
mount -t ntfs-3g -o rw,flush /dev/sdXx /mnt | Принудительное монтирование раздела sdXx (,где Хх — ваш номер диска) с ntfs |
ntfsfix /dev/sdxX | Если не монтируется раздел с ntfs после перезагрузки с windows 10 |
Дополнительные утилиты
Все описанные ниже утилиты не входят в стандартную конфигурацию Debian, придется из ставить отдельно.
htop
Более сильная замена штатной утилиты top. В стандартной конфигурации с системой не поставляется. Предоставляет удобный интерактивный интерфейс со встроенной справкой и обновлением данных в реальном времени.
root@debian7:~# htop -d 10
Ключ -d выставляет значение в десятых долях секунды для обновления данных. Ключ -c переключает программу в монохромный режим работы.
lshw
Утилита предназначена для вывода подробной информации об аппаратном обеспечении. Наиболее удобно экспортировать данные в .html-вид и просматривать в браузере. Такой способ, конечно же, исключается при работе в консольном режиме, разве что если просматривать данные на другой системе.
root@debian7:~# lshw -C network
Команда выведет данные только о сетевой плате.
smartmontools
Пакет состоит из двух утилит (smartctl и smartd), которые следят за S.M.A.R.T-показателями жестких дисков. Для запуска демона необходимо произвести ряд настроек:
Раскомментировать строки и в скобках указать через пробел все устройства, на которых необходимо отслеживать состояние.
enable_smart=»/dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde» start_smartd=yes smartd_opts=»—interval=1800″
Однако при запуске службы на виртуальной машине с Debian 7.7 у меня выдал ошибку (надо сказать, что отслеживание S.M.A.R.T на виртуальных жестких дисках достаточно бредовая идея, я это сделал лишь с целью протестировать):
Просмотреть состояние диска можно командой:
root@debian7:~# smartctl -a /dev/sda
hdparm
Главное предназначение программы — тонкая настройка параметров IDE/SATA жестких дисков, тюнинг производительности. Помимо этого также можно просматривать характеристики устройств командой (укажите свой диск):
root@debian7:~# hdparm -i /dev/sda
Вопросы настройки дисков в рамках этой статьи рассматривать не планируется.
ethtool
Произвести диагностику сетевой платы вам поможет утилита ethtool. Конечно вытянуть информацию можно и с помощью ifconfig, и dmesg и др., но несравнимо больше полезных данных вы получите именно от ethtool. Надо отметить, что с виртуальными сетевыми интерфейсами программа работает достаточно криво. Например отображение статистики по интерфейсу у меня вообще было пустое:
root@debian7:~# ethtool -S eth0no stats available
Общая информация об интерфейсе была примерно настолько же скудной:
root@debian7:~# ethtool eth0Settings for eth0: Link detected: yes
С физическими интерфейсами ситуация обстоит значительно лучше. Помимо диагностики, утилита также предназначена для настройки интерфейсов.
sysstat
Пакет содержит в себе ряд утилит, способных выдавать информацию о производительности тех или иных компонентов системы. Особо полезным может быть iostat, когда нужно проанализировать загрузку жестких дисков в срезе операций ввода/вывода.
Я перечислил далеко не все основные инструменты, знакомство с которыми так необходимо, но по мере возможности собираюсь дополнять статью необходимым материалом.
Notes:
- Package: dmidecode (2.12-4)
- Контролируем SMART HDD, с отчетом на e-mail. На примере FreeBSD и Debian/Ubuntu.
- Мониторинг SMART на Centos и Debian
comments powered by HyperComments
4 способа найти количество ядер CPU в Linux
Добавить в избранное
Главное меню » Операционная система Linux » 4 способа найти количество ядер CPU в Linux
Использование файловой системы Proc
Для того чтобы найти количество ядер CPU в Linux, можно воспользоваться файловой системой proc. Эта процедура представляет собой псевдо-файловую систему, которая отслеживает среду выполнения.
Для того, чтобы получить информацию центрального процессора, вам нужно просто cat “/proc/cpuinfo” в proc. Это дает детальную информацию о процессоре, таком как VENDOR_ID, семейства CPU, модель, CPU МГц и т.д., как показано ниже:
Следовательно, чтобы найти количество ядер CPU в Linux с точными деталями используйте следующую команду:
Вот в этом случае мы получили 3 процессора, число в диапазоне от 0 до 2.
С помощью команды lscpu
Вы также можете найти количество ядер CPU в Linux с помощью команды lscpu.
В приведенном выше примере четко упоминается число процессоров 3 напротив заголовка “CPU(s)”.
С помощью команды dmidecode
Команда dmidecode также предоставляет информацию о процессоре вместе с другой аппаратной информацией, такой как системная информация, информация о вентиляторах. Чтобы получить точно или найти количество ядер CPU в Linux с помощью команды dmidecode, вам нужно указать grep со словом CPU, как показано ниже:
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Пакеты брать будете?
Что еще из операций ввода-вывода у нас осталось? Правильно, сетевое взаимодействие. Здесь царит та еще чехарда — «официальные» утилиты меняются от релиза к релизу, что, с одной стороны, круто, потому что удобств становится больше, с другой — надо переучиваться каждый раз.
Скажем, какой утилитой смотреть существующие в системе интерфейсы? Кто сказал
ifconfig? На современных системах ifconfig, как правило, уже вообще отсутствует, ибо есть
1 | $ipa |
Вроде выглядит немного по-другому, а вроде то же самое. Кстати, для управления сетевыми мостами из консоли часто необходимо ставить пакет bridge-utils. Тогда в консольке появится утилита
brctl, с помощью которой можно будет их просматривать (
brctl show), ну и менять. Но иногда бывает по-другому. Мне встречался случай, когда бриджи были, а brctl их не показывал. Оказалось, что для их создания использовался Open vSwitch и кастомный модуль ядра, для настройки которого надо использовать другую утилиту —
ovs-vsctl. Если вдруг у тебя окружение на OpenStack, где эта штука активно используется, — может быть полезно.
Дальше — как насчет таблиц маршрутизации? Как, говоришь,
route-n? Нет, мимо. Сейчас чаще используются
netstat-nr и
ip route show. Ну и самое банальное — как посмотреть открытые порты и процессы, которые их запросили? Например, вот так:
1 | $sudo netstat-tnlp |
Но думаю, ты уже понял, что банальщиной мы ограничиваться не будем. Давай посмотрим теперь в реальном времени, как пакеты бегают по интерфейсам.
1 | $sar-nDEV1 |
Да, sar — это еще одна отличная утилита для мониторинга. Умеет показывать не только сетевые операции, но и диски и активность процессора. Почитать о ней можешь, например, в статье «Простой мониторинг системы с помощью SAR».
Также sar позволяет мониторить открытие/закрытие соединений и ретрансмиты (это повторные отправки тех же данных, когда сетевое оборудование сбоит или коннект крайне нестабильный, очень помогает траблшутить) в реальном времени.
1 | $sar-1TCP,ETCP1 |
Ну и последнее — конечно, по порядку, а не по значению — это просмотр самого сетевого трафика. Чаще всего для этого используют две утилиты: tcpdump и wireshark. Первая — консольная, ей можно, к примеру, запустить прослушивание на всех интерфейсах и записать трафик в дамп-файл в формате pcap:
1 | $tcpdump-wtest.dump |
Вторая же — графическая. Из нее можно точно так же запустить прослушивание, а можно просто открыть в ней готовый файл дампа, слитый с удаленного сервера. И наслаждаться красотой слоев модели OSI (точнее, TCP/IP).
Wireshark
Бонус: дополнительные инструменты
Еще немного инструментов:
- nmap – сканирует сервер на наличие открытых портов.
- lsof – список открытых файлов, сетевых подключений и многое другое.
- ntop — веб-инструмент для наблюдения за использованием сети, программное обеспечение для мониторинга сетевого трафика. Вы можете видеть состояние сети, распределение трафика по протоколам для UDP, TCP, DNS, HTTP и других протоколов.
- Conky – еще один классный инструмент мониторинга для системы X Window. Он легко настраивается и способен отслеживать многие системные переменные, включая состояние процессора, памяти, места подкачки, дискового пространства, температуры, процессов, сетевых интерфейсов, заряда батареи, системных сообщений, почтовых ящиков и т. д.
- GKrellM – этот инструмент можно использовать для мониторинга состояния процессоров, основной памяти, жестких дисков, сетевых интерфейсов, локальных и удаленных почтовых ящиков и многого другого.
- mtr – mtr объединяет функциональность программ traceroute и ping в одном инструменте диагностики сети.
- vtop – графический монитор активности терминала в Linux.
- gtop – панель мониторинга системы для терминала Linux/macOS Unix.
Оригинал статьи — https://www.cyberciti.biz/tips/top-linux-monitoring-tools.html.
Каждую неделю мы в live режиме решаем кейсы на наших открытых онлайн-практикумах, присоединяйтесь к нашему каналу в Телеграм, вся информация там.
Оператор проблемы
Некоторые сборки UEFI BIOS с поддержкой безопасной загрузки, включая Tiano Core, по умолчанию не прошли проверку подлинности UEFI, так как подписанные параметры UEFI не были доступны во время разработки безопасной загрузки. Это предоставляет уязвимую зону или уязвимость в безопасной загрузке UEFI.
2.1. Уязвимость
Эта уязвимость по-прежнему присутствует в EDK II и UDK2010 по состоянию на август 2013 года. Поддержку источника известно о проблеме, и подается ошибка. Любое встроенное ПО, производное от EDK II и UDK2010, должно проверить, как управляется проверка параметров диска. Поведение проверки параметров диска управляется значением PCD в пакете EDK II SecurityPkg.
Исходный код уязвимости TianoCore — файл SecurityPkg\SecurityPkg.dec:
Значение по умолчанию (0x00) — это ALWAYS_EXECUTE, что неправильно выполняет проверку подписанных драйверов в параметрах ROM для периферийных устройств надстройки. Это не идеальное значение для любой системы, реализующего функциональность безопасной загрузки UEFI.
Рекомендуемое значение (оптимальная безопасность):
Рекомендуемое значение (оптимальная гибкость):
В EDK II & UDK2010 правильная практика написания кода использует механизм переопределения для изменения значений PCD для встроенного ПО платформы. Таким образом, значение для не должно быть изменено в . Значение переопределения должно быть задано в DSC-файле платформы. Ниже приведен пример использования Nt32Pkg\Nt32Pkg.dsc:
Переопределение PCD должно быть помещено в раздел DSC-файла. Точный механизм переопределения параметров может отличаться в зависимости от средств поставщика BIOS.
Примечание
Эта уязвимость может существовать в ранних реализациях BIOS безопасной загрузки UEFI от независимых поставщиков BIOS. Обратитесь к поставщику BIOS, чтобы определить, может ли повлиять ваша версия.
Мониторинг сети с помощью iptraf
iptraf — это одна из самых лучших программ для мониторинга сети в Linux. Она предоставляет очень удобный интерактивный интерфейс, с помощью которого можно наглядно увидеть всю необходимую информацию, причем достаточно подробно. Утилита не поставляется по умолчанию, но она достаточно популярна, поэтому вы можете установить ее из официальных репозиториев. Для этого в Ubuntu выполните команду:
А в CentOS / Red Hat выполните:
После установки утилиты для ее запуска просто наберите в терминале iptraf:
Перед вами откроется интерактивный интерфейс на основе Ncurses, в котором необходимо выбрать нужное действие. Здесь доступны монитор пропускной способности сети, статистика по интерфейсу, статистика по сбоям и монитор локальной сети.
Обратите внимание на нижнюю часть окна, там отображается описание выбранного действия, а также находятся подсказки по горячим клавишам. Например, для просмотра сетевых соединений и статистики трафика для каждого из них выберите «IP traffic moitor». Затем вам будет необходимо выбрать сетевой интерфейс, например, enp2s0:
Например, для просмотра сетевых соединений и статистики трафика для каждого из них выберите «IP traffic moitor». Затем вам будет необходимо выбрать сетевой интерфейс, например, enp2s0:
Дальше вы увидите все IP адреса, с которыми сейчас выполняется взаимодействие. Здесь можно увидеть направление отправки пакетов, количество пакетов и общий объем переданных или полученных данных в байтах.
С помощью других пунктов меню можно посмотреть статистику по интерфейсу или статистику по работе локальной сети. Утилита даже может работать в неразборчивом режиме, чтобы собирать максимум данных про локальную сеть.
Также поддерживаются фильтры, которые позволяют отфильтровывать информацию только по определенному критерию. Например, чтобы создать фильтр откройте меню «Filters», затем выберите «IP…», а дальше «Apply new filter»:
Затем нужно указать имя фильтра:
На следующем этапе вы можете расписать нужные параметры фильтрации:
Чтобы применить фильтр нужно выбрать «Apply filter» и выбрать имя фильтра из списка:
Теперь в любом пункте статистики будет отображаться только та информация, которая подходит под созданный фильтр.
Мониторинг трафика Linux чаще всего выполняется администраторами именно с помощью этой утилиты. Видео про использование утилиты:
Информация о системе Linux из консоли ssh
Очень часто возникает необходимость разузнать о системе или о компьютере ту или иную информацию. Это можно делать всего парой строк в терминале Ubuntu. В GUI Ubuntu имеется пакет hardinfo, который показывает достаточно множество информации о аппаратной и программной части компьютера. Но это GUI, какой можно использовать, если на компьютере установлена графичная оболочка, а графическая среда, например на серверной версии недостаёт. Да и сам компьютер может быть расположен где-нибудь так что десницами его не достать) В случае если хочется красивого окна, но компьютер далеко, можно пробросить окошко hardinfo чрез ssh:
uname -a
cat /etc/issue
rpm -qa и аналоги
cat /proc/cpuinfo
cat /proc/meminfo
lspci
lsusb
Для приступила приведем утилиту lshw Для ее установки нужно завести в терминале: sudo apt-get install lshw После аппараты, для того чтобы узнать характеристики системы, довольно ввести в терминале команду sudo lshw
linuxinfo
cat /proc/cpuinfo
free
df -m
и на дессерт
less /boot/config-2.6.»uname-a»
hwinfo
Сам себе Большой Брат
Что вообще такое «мониторинг»? Поскольку я в свое время оканчивал химический университет, у меня это понятие четко ассоциируется с системами управления технологическими производствами. По сути, у нас есть ряд параметров сложной системы, которые мы отслеживаем, а по результатам можем, если необходимо, выполнить управляющее воздействие. Например, понизить давление в реакторе. А еще мы можем отправить уведомление оператору, который уже независимо примет то или иное управляющее решение.
У тех, кто далек от химии, но близок к IT, ассоциация немного другая, но в целом похожая — обычно это экран с кучей графиков, на которых творится какая-то магия, как в голливудских сериалах. Для многих администраторов так оно и выглядит — Graphite/Icinga/Zabbix/Prometheus/Netdata (нужное подчеркнуть) как раз рисуют красивый интерфейс, в который можно задумчиво глядеть, почесывая бороду и гладя свитер.
Большинство этих систем работают одинаково: на конечные ноды, за которыми мы хотим наблюдать, устанавливаются так называемые агенты, или коллекторы, а дальше все происходит по методике push или pull. То есть либо мы указываем этому агенту мастер-ноду, и он начинает периодически отсылать туда отчеты и heartbeat, либо же, наоборот, мы добавляем ноду в список для мониторинга на мастере, а тот уже, в свою очередь, сам ходит и опрашивает агенты о текущей ситуации.
Нет, я не буду рассказывать в подробностях, как настраивать подобные системы. Вместо этого мы голыми руками докопаемся до того, что вообще происходит в системе. Кстати, хороший перечень утилит для сисадмина приведен в статье Евгения Зобнина «Сисадминский must have». Настоятельно советую взглянуть.
Как использовать Hwinfo в Ubuntu
Для вывода краткой сводки о компьютере откройте терминал Linux и выполните: $ sudo hwinfo –short.
Сжатая сводка.
Команды
Для просмотра информации об основных комплектующих используйте команды:
- $ sudo hwinfo –cpu – подробности о центральном процессоре;
- $ sudo hwinfo –short –cpu – сжато о ЦПУ;
- $ sudo hwinfo –memory или $ sudo hwinfo –short –memory – оперативная память;
- $ sudo hwinfo –disk – накопители;
- $ sudo hwinfo –partition – логические разделы;
- $ sudo hwinfo –network – сетевая карта;
- $ sudo hwinfo –sound – звуковая карта;
- $ sudo hwinfo –bios – микропрограммы BIOS или UEFI и т.д.
Уточнения
Для вывода краткой характеристики перед аргументом добавляйте –short.
Отчёты сохраняются командой: $ hwinfo –all –log hardwareinfo.txt.
Для экспорта данных о конкретном устройстве: $ hwinfo –monitor > hardwareinfo.txt или $ hwinfo –keyboard > hardwareinfo.txt.
После имени утилиты через двойной дефис укажите название устройства.
Справочная информация доступна по утилите: $ hwinfo –help.
Информация о накопителе
В какой-то момент могут закрасться подозрения в некорректной работе жесткого диска, в таком случае всего несколько команд помогут вам узнать больше об этом компоненте компьютера. Например, чтобы посмотреть все подключенные твердотельные накопители, нужно выполнить эту команду:
Fdisk -l | grep «^/dev»
Определившись со всеми дисками и узнав их названия, можно посмотреть более подробную информацию:
Fdisk -l /dev/sda #просмотр разделов на диске
e2label /dev/sda #отображение метки диска
Если есть желание просмотреть все и сразу, а при необходимости даже внести некоторые коррективы, тогда лучше всего подойдет программа cfdisk. Запустить ее просто, достаточно прописать название в «Терминале».
Получше, чем у золотой рыбки
Что в науке, что в инжиниринге периодически возникает одна и та же «проблема» — нельзя просто так взять и ответить на, казалось бы, простой вопрос. Все потому, что есть нюансы и тонкости, а задающий вопрос человек начинает злиться и говорить: «Не надо мне этого всего, ты мне цифру назови». А потом зависает, когда внезапно оказывается, что разные утилиты показывают абсолютно разные значения, скажем, для размера файла или для количества доступной оперативки…
Кстати, об оперативке. Поскольку это у нас железо, то мы можем первым делом опять нахально проследовать в
/proc:
1 | $cat/proc/meminfo |
…и получить кучу разных цифр, из которых большая часть абсолютно непонятна, так как это вообще все параметры нашей RAM, которые видит ядро. Поэтому лучше все-таки использовать старую добрую команду
free:
1 | $free-ht |
Кстати, почему мы получаем информацию об оперативке не из
/sys, как я описал во врезке? Да потому что «пошел ты, вот почему». Вот ссылка на заметочку, в которой написано, где там память в
/sys и как с ней работать: How memory is represented in sysfs. Если кратко — придется перемножать в уме и читать кучу разных файлов.
Как ни странно, есть возможность получить и более низкоуровневую информацию об оперативке, чем
/proc/meminfo. Это утилита
dmidecode из одноименного пакета. Она общается непосредственно с BIOS и возвращает даже имена вендоров-производителей. Правда, не всегда верные (особенно весело запускать ее под гипервизором, но это совсем другая история).
1 | $sudo dmidecode—type17 |
Кстати, top и htop, как и банальный
ps aux, тоже выводят информацию о занятой памяти, а второй еще и диаграмму в ASCII рисует по ней и по ядрам. Цветную. Лепота.
Первые две колонки очевидны:
- PID — идентификатор процесса;
- User — пользователь, от которого он запущен.
А вот две следующие чуть интересней: Priority и Niceness, причем первая в общем случае равна второй + 20. По сути, Priority показывает абсолютное значение приоритета процесса в ядре, а Niceness показывает значение относительно ноля (ноль обычно назначается по умолчанию). Этот самый приоритет учитывается при выдаче процессу квантов процессорного времени, поэтому, формально говоря, при увеличении приоритета командой
renice можно заставить какую-нибудь сильно CPU-bound задачу выполняться чуточку быстрее. Для процессов реального времени в колонке Priority будет стоять rt, то есть real time, «как только — так сразу».
Дальше следуют данные о памяти:
- VIRT — виртуальная память, «обещанная» процессу системой;
- RES — фактически используемая память (кстати, благодаря механизму copy-on-write может быть несколько (N) форков одного и того же процесса с одним и тем же числом M в этой колонке, что вовсе не значит, что сожрано N*M памяти, потому что они разделяют ее между собой);
- SHR — shared memory, то есть память, которая потенциально может использоваться для межпроцессного взаимодействия.
Ну и совсем базовые показатели:
- CPU% — сколько процентов CPU жрет процесс; легко может быть больше 100%, если параллелится на несколько ядер;
- MEM% — процент памяти, потребляемой процессом;
- TIME+ — сколько времени процесс бежит;
- COMMAND — какая команда (программа + аргументы) запущена.
Но мы же хотим идти еще глубже, надо больше подробностей!
1 | $vmstat1 |
Здесь тоже много колонок, для простоты взглянем на четыре:
- r — размер очереди процессов на доступ к памяти;
- b — число процессов в uninterruptible sleep;
- si/so — сколько страниц памяти в текущий момент пишется в своп / читается из свопа.
Надо ли явно подчеркивать, что в идеальном мире в них должны быть ноли?
Выводы
Знаете ли вы, что ядро Linux загружает несколько драйверов устройств при загрузке системы?
Фактически, когда ваша система запущена и работает, и вы подключаете аппаратное устройство, то также загружается соответствующий драйвер устройства.
Конечно, ядро также делает много других вещей.
Что делать, если вы хотите узнать информацию, связанную с этими действиями ядра?
Что ж, существует команда — dmesg — которую вы можете использовать, если хотите получать доступ к сообщениям, выведенные ядром.
В этом уроке мы поймем, как работает инструмент dmesg, используя несколько простых для понимания примеров.
Команда Linux dmesg
Синтаксис команды dmesg:
Dmesg
Ниже приведены примеры Вопрос & Ответ, которые помогут вам лучше понять, как работает команда dmesg.
В1. Как использовать команду dmesg?
Вы можете начать использовать команду dmesg без любой опции командной строки.
Например, вот небольшая часть вывода команды, созданной в моем случае:
В2. Как ограничить вывод только ошибками и предупреждениями?
Если вы запустите dmesg в своей системе, вы увидите, что он выводит множество информации.
В зависимости от того, что вы ищете, вы можете фильтровать или ограничивать вывод.
Со своей стороны, dmesg предлагает вам эту способность через «уровни».
Ниже приведен полный список уровней (вместе с их объяснением):
Emerg — system is unusable
alert — action must be taken immediately
crit — critical conditions
err — error conditions
warn — warning conditions
notice — normal but significant condition
info — informational
debug — debug-level messages
Например, если вы хотите ограничить вывод только ошибками и предупреждениями, вы можете сделать это следующим образом:
Dmesg —level=err,warn
В моем случае, вот часть вывода выведенной выше команды:
В3. Как создать dmesg для создания временных меток?
Иногда вам может понадобиться связать временную метку с сообщениями, которые создает dmesg.
Это можно сделать, используя опцию командной строки -T, которая создает человекочитаемые метки времени.
Dmesg -T
Пример вывода:
В4. Как сделать, что dmesg отображал информацию об определенном устройстве?
Предположим, вы хотите, чтобы dmesg отображал только информацию, связанную с интерфейсом eth0.
Вот как вы можете это сделать:
Dmesg | grep -i eth0
Пример вывода:
В5. Как заставить dmesg отображать только сообщения в пользовательском пространстве?
Если вы хотите ограничить вывод dmesg только сообщениями пользовательского пространства, используйте параметр командной строки -u.
Dmesg -u
Согласитесь, dmesg — это не та команда, которая вам понадобится каждый день.
Но это инструмент, к которому нужно обратиться, когда кто-то (которого вы попросили о помощи по определенной теме) просит вас предоставить сообщения ядра.
В основном я видел этот случай на форумах онлайн-пользователей, где опытные пользователи просят вывод ядра.
Диагностика оборудования — достаточно важный вопрос, который никак нельзя упускать. Именно поэтому в серию «Шпаргалка сисадмина» для ОС Debian я не могу не добавить статью о средствах получения информации об устройствах. На этот раз я постараюсь коротко рассказать об основных утилитах для диагностики тех или иных компонентов сервера. Начну конечно же со встроенных по умолчанию в систему средств, поскольку знать их и уметь пользоваться должен любой сисадмин. Далее будет обзор пакетов с общим назначением. В конечно счете подойдем к знакомству с дополнительными расширенными инструментами, которые каждый может поставить по желанию.