Информационные команды FreeBSDПонадобилось как-то узнать подробно, из каких комплектующих собран удаленный сервер, работающий под управлением FreeBSD. Вывода /var/run/dmesg.boot в моем случаем было явно недостаточно... В таких ситуациях на помощь приходит утилита dmidecode. С ее помощью можно получить детальную информацию о материнской плате, процессоре, оперативной памяти и тд.
Установка утилиты выполняется из системы портов и проблем не вызывает:
#cd /usr/ports/sysutils/dmidecode
#make install clean
Ну и, собственно, теперь можно "пожинать плоды".
Вывод информации о "железе" (обрезал вывод, поскольку вывод информации предоставляется довольно много):
# dmidecode | less
# dmidecode 2.11
SMBIOS 2.3 present.
61 structures occupying 2340 bytes.
Table at 0x000FA380.
Handle 0x0000, DMI type 0, 20 bytes
BIOS Information
Vendor: American Megatrends Inc.
Version: 080010
Release Date: 10/19/2004
Address: 0xF0000
Runtime Size: 64 kB
ROM Size: 1024 kB
Characteristics:
ISA is supported
PCI is supported
PNP is supported
APM is supported
BIOS is upgradeable
BIOS shadowing is allowed
ESCD support is available
Boot from CD is supported
Selectable boot is supported
BIOS ROM is socketed
EDD is supported
5.25"/1.2 MB floppy services are supported (int 13h)
3.5"/720 kB floppy services are supported (int 13h)
3.5"/2.88 MB floppy services are supported (int 13h)
Print screen service is supported (int 5h)
8042 keyboard services are supported (int 9h)
Serial services are supported (int 14h)
Printer services are supported (int 17h)
CGA/mono video services are supported (int 10h)
ACPI is supported
USB legacy is supported
AGP is supported
LS-120 boot is supported
ATAPI Zip drive boot is supported
BIOS boot specification is supported
Function key-initiated network boot is supported
Handle 0x0001, DMI type 1, 25 bytes
System Information
Manufacturer: Supermicro
Product Name: X6DVA
Version: 1234567890
Serial Number: 1234567890
UUID: 00020003-0004-0005-0006-000700080009
Wake-up Type: Power Switch
Handle 0x0002, DMI type 2, 8 bytes
Base Board Information
Manufacturer: Supermicro
Product Name: X6DVA
Version: 1234567890
Serial Number: 1234567890
Handle 0x0038, DMI type 17, 27 bytes
Memory Device
Array Handle: 0x002C
Error Information Handle: Not Provided
Total Width: 128 bits
Data Width: 128 bits
Size: 512 MB
Form Factor: DIMM
Set: None
Locator: DIMM2
Bank Locator: BANK1
Type: DDR
Type Detail: Synchronous
Speed: Unknown
Manufacturer: Manufacturer5
Serial Number: SerNum5
Asset Tag: AssetTagNum5
Part Number: PartNum5
Handle 0x0039, DMI type 20, 19 bytes
Memory Device Mapped Address
Starting Address: 0x00000000000
Ending Address: 0x000200003FF
Range Size: 524289 kB
Physical Device Handle: 0x0038
Memory Array Mapped Address Handle: 0x002D
Partition Row Position: 1
Interleave Position: 2
Interleaved Data Depth: 1
Handle 0x003A, DMI type 32, 20 bytes
System Boot Information
Status: No errors detected
Handle 0x003B, DMI type 38, 18 bytes
IPMI Device Information
Interface Type: Unknown
Specification Version: 0.0
I2C Slave Address: 0x00
NV Storage Device Address: 0
Base Address: 0x0000000000000000 (Memory-mapped)
Register Spacing: Successive Byte Boundaries
Handle 0x003C, DMI type 127, 4 bytes
End Of Table
Как видите, информация довольно обширная. Чтобы конкретизировать получаемую инфорамацию, необходимо указывать соответствующие ключи. Ключи можно узнать на странице man-руководства. Например, чтобы вывести информацию о процессорах (в моем случае их два).
Пример такого запроса:
# dmidecode --type 4
# dmidecode 2.11
SMBIOS 2.3 present.
Handle 0x0004, DMI type 4, 35 bytes
Processor Information
Socket Designation: CPU 1
Type: Central Processor
Family: Pentium 4
Manufacturer: Intel
ID: 41 0F 00 00 FF FB EB BF
Signature: Type 0, Family 15, Model 4, Stepping 1
Flags:
FPU (Floating-point unit on-chip)
VME (Virtual mode extension)
DE (Debugging extension)
PSE (Page size extension)
TSC (Time stamp counter)
MSR (Model specific registers)
PAE (Physical address extension)
MCE (Machine check exception)
CX8 (CMPXCHG8 instruction supported)
APIC (On-chip APIC hardware supported)
SEP (Fast system call)
MTRR (Memory type range registers)
PGE (Page global enable)
MCA (Machine check architecture)
CMOV (Conditional move instruction supported)
PAT (Page attribute table)
PSE-36 (36-bit page size extension)
CLFSH (CLFLUSH instruction supported)
DS (Debug store)
ACPI (ACPI supported)
MMX (MMX technology supported)
FXSR (FXSAVE and FXSTOR instructions supported)
SSE (Streaming SIMD extensions)
SSE2 (Streaming SIMD extensions 2)
SS (Self-snoop)
HTT (Multi-threading)
TM (Thermal monitor supported)
PBE (Pending break enabled)
Version: Intel(R) Xeon(TM) CPU 2.80GHz
Voltage: 3.3 V 2.9 V
External Clock: 800 MHz
Max Speed: 2800 MHz
Current Speed: 2800 MHz
Status: Populated, Enabled
Upgrade: Socket 478
L1 Cache Handle: 0x0005
L2 Cache Handle: 0x0006
L3 Cache Handle: 0x0007
Serial Number: To Be Filled By O.E.M.
Asset Tag: To Be Filled By O.E.M.
Part Number: To Be Filled By O.E.M.
Handle 0x0008, DMI type 4, 35 bytes
Processor Information
Socket Designation: CPU 2
Type: Central Processor
Family: Pentium 4
Manufacturer: Intel
ID: 41 0F 00 00 FF FB EB BF
Signature: Type 0, Family 15, Model 4, Stepping 1
Flags:
FPU (Floating-point unit on-chip)
VME (Virtual mode extension)
DE (Debugging extension)
PSE (Page size extension)
TSC (Time stamp counter)
MSR (Model specific registers)
PAE (Physical address extension)
MCE (Machine check exception)
CX8 (CMPXCHG8 instruction supported)
APIC (On-chip APIC hardware supported)
SEP (Fast system call)
MTRR (Memory type range registers)
PGE (Page global enable)
MCA (Machine check architecture)
CMOV (Conditional move instruction supported)
PAT (Page attribute table)
PSE-36 (36-bit page size extension)
CLFSH (CLFLUSH instruction supported)
DS (Debug store)
ACPI (ACPI supported)
MMX (MMX technology supported)
FXSR (FXSAVE and FXSTOR instructions supported)
SSE (Streaming SIMD extensions)
SSE2 (Streaming SIMD extensions 2)
SS (Self-snoop)
HTT (Multi-threading)
TM (Thermal monitor supported)
PBE (Pending break enabled)
Version: Intel(R) Xeon(TM) CPU 2.80GHz
Voltage: 3.3 V 2.9 V
External Clock: 800 MHz
Max Speed: 2800 MHz
Current Speed: 2800 MHz
Status: Populated, Enabled
Upgrade: Socket 478
L1 Cache Handle: 0x0009
L2 Cache Handle: 0x000A
L3 Cache Handle: 0x000B
Serial Number: To Be Filled By O.E.M.
Asset Tag: To Be Filled By O.E.M.
Part Number: To Be Filled By O.E.M.
Теперь дело за малым - "повыдергивать" из вывода dmidecode необходимую информацию.
Например, сколько и каких планок стоит в сервере, очень помогло:
dmidecode --type 17|grep Size
Size: 8192 MB
Size: No Module Installed
Size: No Module Installed
Size: 8192 MB
Size: No Module Installed
Size: No Module Installed
Size: No Module Installed
Size: No Module Installed
Size: 8192 MB
Size: No Module Installed
Size: No Module Installed
Size: 8192 MB
Size: No Module Installed
Size: No Module Installed
Size: No Module Installed
Size: No Module Installed
Size: No Module Installed
Size: No Module Installed
Size: No Module Installed
Size: No Module Installed
Size: No Module Installed
Size: No Module Installed
Size: No Module Installed
Size: No Module Installed
А воспользовавшись ключом "memory", вы получите детальный отчет обо всей установленной памяти.
# dmidecode -t memory
Далее привожу список более специализированных информационных команд #pciconf -lv -инфа об pci устройствах
#dmesg | grep "Ethernet" -инфа об устройствах в названии которых есть Ethernet
инфа о проце
#grep -w CPU: /var/run/dmesg.boot
#sysctl -a | grep machdep.tsc_freq:
#sysctl hw.machine архитектура
#sysctl hw.model модель проца
#sysctl hw.ncpu кол-во процессоров
#sysctl hw.physmem объем памяти
Инфа о дискахместо в папке
#du -hsx /usr/home/natan
#du -h -d 1 /home
#df -m -дисковое пространство
#diskinfo -t /dev/da0 -производительность диска
Сетевая инфа#dig -x 8.8.8.8 -узнать имя хоста по IP адресу
#netstat -rn -таблица маршрутизации
#sockstat | grep nat -информация по соединению программы
#tcpdump proto gre and host modem_ip_address -фильтр пакетов протокол gre отправленных на modem_ip_address
Другая общая инфаДинамика изменения параметров:
#netstat -w 1
#iostat -w 1
#vmstat -w 1
#gstat
Состояние буферов:
#vmstat -z
#netstat -m
#netstat -Lan
#netstat -s -p tcp
#systat -if 1
#systat -tcp 1
#systat -ip 1
#systat -vmstat 1
И ещё несколько команд
#netstat -s
#fstat
#top -aSHP
#kldstat
#sysctl -a
#vmstat -i
#vmstat -m
#dmesg
#ps ax
#ngctl list
#vmstat -z | egrep 'socket|tcpcb'
HDD
atacontrol list - просмотр всех жестких дисков в системе (показывает в том числе и их модели)
mount – показывает смонтированные подразделы и флаги из монтирования
cat /etc/fstab – таблица монтирования при загрузке
disklabel /dev/ad0s1 – показывает список подразделов в первом разделе диска ad0
swapinfo – показывает список подразделов свопинга на дисках и их использование
gstat – нагрузка на диски
fstat – показывает список открытых файлов (имена файлов не выводятся)
pstat -f – выводит список открытых файлов (имена файлов не выводятся)
iostat – выводит информацию, аналогичную systat -vmstat, но не выводит занятости диска по времени и может выводить среднюю статистику с момента загрузки.
iostat -d -w1 -c7 – нагрузка на диски. Статистика в удобном виде
vmstat – выводит количество операций на диске в секунду
sysinstall – можно посмотреть и изменить разметку диска и монтирование
systat -vmstat n – каждые n секунд выводит количество транзакций с диском в секунду, объем записанных/считанных данных на диск в секунду, средний размер транзакции и процент времени в течение которого диск был занят работой.
systat -io start 1 - HDD + CPU
diskinfo -t ad4 – тест на дисковую производительность
tunefs -p /var/ – информация о настройках файловой системы (UFS)
df -H – количество свободного места
df -i – количество свободных инодов
Network
ifconfig – список сетевых интерфейсов с ip-адресами, масками, mac-адресами, типами карт и их статусами (названия карточек можно посмотреть в файле конфигурации ядра)
ifconfig -d - Просмотреть список отключенных интерфейсов
ifconfig -u - Список включенных сетевух
netstat – вывод активных сетевых соединений (сокетов)
netstat -i ошибки на интерфейсах
netstat -m - просмотр хватает ли mbuf и т.д.
netstat -inb – сколько передано через интерфейс в байтах
netstat -ibt – список интерфейсов, разбитых по ip-адресам (!) с объемом трафика на каждом, количеством ошибок, коллизий, значением watchdog-таймера
netstat -hdw 1 -i net1 - Просмотр количества пакетов в сек, ошибок и дропов на интерфейсе (online)
netstat -r – таблица маршрутизации
systat -ifstat n– интенсивность передачи трафика (online) по всем сетевым интерфейсам за n секунд
systat -netstat n – аналог netstat в реальном времениsysctl kern.ipc.numopensockets – количество открытых сокетов
systat -ip n – таблица IP-пакетов и ошибок по типам за n секунд
systat -tcp n – таблица TCP-пакетов и ошибок по типам за n секунд
systat -icmp n – таблица ICMP-пакетов и ошибок по типам за n секунд
arp -a – просмотр всей таблицы ARP
arp -ad – очистка всей таблицы ARP
tcpdump -i rl0 host 192.168.61.20 and port 80 – сниффер пакетов на интерфейсе rl0, фильтрующий пакеты, содержащие адрес 192.168.61.20 и порт 80
trafshow -i rl0 – программа для сортировки и вывода сетевых потоков (устанавливается дополнительно пакетом или из портов)
System
top -mio – показать I/O по процессам
top -S – показать системные процессы в топе (по дефолту они не показываются)
top -SHPI - показать загрузку по ядрам, в том числе и системные процессы, кроме тех что в простое. Наиболее удобный вариант.
vmstat -z чего не хватает
vmstat -i прерывания по устройствам
systat -vmstat n – просмотр всей сводной статистики по системе(online). вывод показателей загрузки (number of jobs in the run queue averaged over 1, 5 and 15 min), состояния памяти (в страницах), количества процессов в группах, количество вызовов специальных функций ядра (traps, interrupts, system calls, network software interrupts), использование процессора, трансляции имен, активность свопа, прерывания, а также информацию по использованию диска (см)
uptime - можно просмотреть время работы системы без перезагрузок и load averages системы
pcpustat - мониторинг CPU (порт)
ps afx – список запущенных процессов и время процессора на каждый
rcorder /etc/rc.d/* /usr/local/etc/rc.d/* - Посмотреть очередность запуска сервисов в freebsd.
Если кто то еще знает другие команды, можете оставлять их, будем только благодарны за помощь!