- # Сбор системных данных в Linux
- # Версия операционной системы
- # Информация об аппаратной части
- # Диспетчер задач
- # Диспетчер сетевых интерфейсов
- # Сетевые инструменты
- # netstat
- # ifconfig
- # route
- Net-tools-1.60
- Информация о пакете
- Дополнительно
- Установка Net-tools
- Замечание
- Описание команд
- Описание
- arp
- dnsdomainname
- domainname
- hostname
- ifconfig
- ipmaddr
- iptunnel
- mii-tool
- nameif
- netstat
- nisdomainname
- plipconfig
- rarp
- route
- slattach
- ypdomainname
# Сбор системных данных в Linux
В процессе работы с сервером часто возникают ситуации, когда нужно получить дополнительные сведения о системе — посмотреть открытые порты, проверить загрузку процессора или найти процесс, выполнение которого отнимает слишком много серверных ресурсов.
В этой статье мы расскажем о встроенных командах и небольших устанавливаемых утилитах, которые помогут получить дополнительные сведения о функционировании системы, помогут просканировать открытые или прослушиваемые порты, приведут список выполняемых процессов и т.д.
# Версия операционной системы
Начнём с самого базового элемента — версия установленной на сервере операционной системы. Получить информацию о ней можно при помощи нескольких команд.
Она выведет в консоль только общее название системы:
Если добавить к этой команде флаг -a , то на экран будет выведена полная информация о системе: имя хоста, имя и версия ядра Kernel, а также разрядность самой операционной системы.
Она выведет на экран информацию об установленных модулях LSB и основную информацию об операционной системе:
# Output No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 10 (buster) Release: 10 Codename: buster
# Информация об аппаратной части
Получить общие данные об аппаратной части вашего компьютера — вне зависимости от того, локальная это машина или сервер — можно с помощью утилиты lshw .
Если она не установлена по умолчанию, установите её стандартным способом:
# Ubuntu / Debian sudo apt install lshw # CentOS sudo dnf install lshw
После завершения установки можно переходить непосредственно к работе с программой. Вводим команду:
Она соберёт общую информацию о вашем «железе»: имя хоста, количество ядер процессора и объём RAM:
# Output host_name description: Computer width: 64 bits capabilities: smp vsyscall32 *-core description: Motherboard physical id: 0 *-memory description: System memory physical id: 0 size: 4GiB *-cpu product: Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz vendor: Intel Corp. physical id: 1 bus info: cpu@0 width: 64 bits
Флаг -short позволит сделает выдачу не такой развёрнутой:
# Output H/W path Device Class Description ======================================== system Computer /0 bus Motherboard /0/0 memory 4GiB System memory /0/1 processor Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz
Получить сведения об установленном процессоре или о подключённых к машине дисковых накопителях (жёсткие диски, флэшки и т.д.) помогут вариации этой команды: lscpu и lsblk .
# Диспетчер задач
Для мониторинга процессов, выполняемых сервером, удобно использовать простой и наглядный диспетчер задач htop:
После установки диспетчер запускается командой:
Команда запускает сам диспетчер, выводящий в консоль список всех исполняемых процессов в данный момент:
В столбцах приведена следующая информация:
- PID — идентификатор процесса.
- USER — пользователь, запустивший процесс.
- PRI — приоритет при выполнении процесса. По умолчанию для всех процессов установлено значение 20. Чем меньше цифра, тем выше приоритет процесса и тем больше системных ресурсов он может задействовать.
- NI — величина, понижающая или увеличивающая значение приоритета. Изменением этой величины (клавиши F7 и F8 ) можно понижать и повышать приоритет выполнения указанных процессов.
- VIRT — объём виртуальной памяти, выделенной системой этому процессу. Здесь указывается не используемый объём памяти, а именно выделенный.
- RES — объём непосредственно используемой процессом памяти.
- SHR — объём памяти, которую могут использовать другие приложения.
- S — столбец, описывающий состояние процесса (S — спящий процесс, R — процесс выполняется, D — процесс ожидает выполнения).
- CPU% — использование процессорных мощностей в процентном соотношении.
- MEM% — процент использования процессом общей системной памяти.
- TIME+ — аптайм процесса.
- Command — команда, которой был запущен процесс.
В нижней части экрана расположены подсказки, которые помогут с навигацией по меню диспетчера задач. Они позволят настроить приоритет или полностью остановить выполнение процесса, настроить фильтр для поиска нужных процессов и попасть в окно общих настроек диспетчера.
# Диспетчер сетевых интерфейсов
Помимо наблюдения за использованием системных ресурсов полезным в работе с сервером бывает и мониторинг использования сетевых интерфейсов. Для этого отлично подойдёт простой, но функциональный инструмент iftop.
Инструмент выводит на экран всю информацию о загрузке сетевых интерфейсов вашей машины.
iftop позволяет мониторить работу отдельно взятого сетевого интерфейса:
sudo iftop -i interface_name
Анализирует трафик, приходящий на сетевой интерфейс из внутренней сети:
Сортирует трафик, приходящий из определённого источника:
Сортирует трафик, идущий к определённому адресу:
# Сетевые инструменты
Очень полезным в повседневной работе с сервером будет набор инструментов для работы с сетью net-tools. Он включает в себя такие популярные инструменты, как ifconfig, netstat, route и другие. Как правило этот набор инструментов уже установлен на сервере. Если какой-то из команд, входящих в его состав, нет, то его легко установить стандартной командой:
sudo apt install net-tools
После завершения установки можно использовать любые из входящих в набор инструментов.
# netstat
Для работы с портами на сервере используется команда netstat с различной комбинацией флагов. Например, можно вывести список всех открытых портов на сервере:
Вы можете также выбрать только прослушиваемые порты:
Если добавить к команде netstat флаг -p , то при выводе выбранных параметров в консоль будет добавлена информация о том, какое именно приложение с каким PID использует данный порт.
Флаги команды можно комбинировать, чтобы вывести на экран определённую комбинацию значений. Например, полезной бывает комбинация флагов -tulpn , которая выводит на экран все прослушиваемые порты на сервере с указанием конкретных процессов, занимающих порт.
# ifconfig
Команда ifconfig работает с сетевыми интерфейсами. Введите её в консоли, чтобы она вывела на экран основную информацию о работающих на сервере сетевых интерфейсах:
sudo ifconfig # Output lo: flags=73UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10host> loop txqueuelen 1000 (Local Loopback) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 venet0: flags=211UP,BROADCAST,POINTOPOINT,RUNNING,NOARP> mtu 1500 inet 127.0.0.1 netmask 255.255.255.255 broadcast 0.0.0.0 destination 127.0.0.1 inet6 2001:1bb0:e000:1e::522 prefixlen 64 scopeid 0x0global> unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 0 (UNSPEC) RX packets 6225 bytes 1302040 (1.2 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 7250 bytes 1044773 (1020.2 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 venet0:0: flags=211UP,BROADCAST,POINTOPOINT,RUNNING,NOARP> mtu 1500 inet 10.100.16.199 netmask 255.255.0.0 broadcast 10.100.255.255 destination 10.100.16.199 unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 0 (UNSPEC)
Если добавить после команды имя конкретного сетевого интерфейса, то на экран будет выведена информация только о нём. Чтобы минимизировать выдачу, можно использовать флаг -s .
Команды up и down после имени интерфейса позволяют включить или отключить его:
sudo ifconfig eth0 up sudo ifconfig eth0 down
Сетевому интерфейсу можно назначить IP-адрес, просто добавив его после имени интерфейса:
sudo ifconfig eth0 192.168.0.1
# route
В общем случае для полноценной настройки сети на сервере помимо команды ifconfig понадобится настройка маршрутизации, которая осуществляется при помощи команды route , также входящей в состав пакета net-tools.
Общий синтаксис команды route выглядит следующим образом:
route add [-net|-host] IP/Net> netmask gw Gateway IP> dev Int>X
Здесь параметры -net и -host описывают сеть или отдельный хост, netmask определяет подсеть, а dev — сетевой интерфейс.
Кроме команды add в route используется del для удаления определённого маршрута.
Подробнее о настройке сетевых соединений при помощи встроенных утилит мы расскажем в отдельном материале.
© Джино, 2003–2022. «Джино» является зарегистрированным товарным знаком.
Лицензия на телематические услуги связи №150549 от 09.03.2017.
Net-tools-1.60
Пакет Net-tools является набором программ для контроля сетевой подсистемы ядра Linux.
Информация о пакете
- Адрес (HTTP): http://www.tazenda.demon.co.uk/phil/net-tools/net-tools-1.60.tar.bz2
- Адрес (FTP): ftp://ftp.ibiblio.org/pub/Linux/distributions/rootlinux/rootlinux-1.3/source/base/net-tools/net-tools-1.60.tar.gz
- Контрольная сумма (HTTP): 888774accab40217dde927e21979c165
- Контрольная сумма (FTP): e1e83a4d4cdd72d35bcf90d76a16206f
- Размер: 194 KB
- Требуемое дисковое пространство: 4.3 MB
- Расчетное время сборки: 0.10 SBU
Дополнительно
- Требуемый патч (при компиляции с использованием GCC -3.4.x): http://www.linuxfromscratch.org/blfs/downloads/6.0/net-tools-1.60-gcc34-3.patch
- Требуемый патч http://www.linuxfromscratch.org/blfs/downloads/6.0/net-tools-1.60-kernel_headers-2.patch
- Требуемый патч http://www.linuxfromscratch.org/blfs/downloads/6.0/net-tools-1.60-mii_ioctl-1.patch
Установка Net-tools
Замечание
Пакет Net-tools устанавливает программу hostname , которая перепишет уже имеющуюся программу, установленную в Coreutils во время основной установки LFS . Если по некоторым причинам вам необходимо переустановить пакет Coreutils после установки Net-tools , то вы должны использовать патч coreutils-5.2.1-suppress_hostname_uptime_kill_su-1.patch если вы хотите сохранить программу hostname из Net-tools .
Если вы не знаете, что ответить на все вопросы, заданные во время фазы make config ниже, то примените значения по умолчанию (команда сборки ниже автоматизирует это). Это будет достаточно нормально в большинстве случаев. Вопросы, которые вам здесь задаются, связаны с сетевыми протоколами, включенными в вашем ядре. Ответы по умолчанию включат средства из этого пакета для работы с большинством общих протоколов: TCP , PPP и некоторыми другими. Вам надо включить поддержку этих протоколов в ядре— то, что вы делаете здесь, просто говорит пакету о включении поддержки этих протоколов в своих программах, но работоспособность этих протоколов обеспечивается ядром.
Установим Net-tools запуском следующих команд:
patch -Np1 -i ../net-tools-1.60-gcc34-3.patch && patch -Np1 -i ../net-tools-1.60-kernel_headers-2.patch && patch -Np1 -i ../net-tools-1.60-mii_ioctl-1.patch && yes "" | make config && sed -i -e 's|HAVE_IP_TOOLS 0|HAVE_IP_TOOLS 1|g' \ -e 's|HAVE_MII 0|HAVE_MII 1|g' config.h && sed -i -e 's|# HAVE_IP_TOOLS=0|HAVE_IP_TOOLS=1|g' \ -e 's|# HAVE_MII=0|HAVE_MII=1|g' config.make && make && make update
Описание команд
yes «» | make config : Перенаправляет yes в make config , пропуская интерактивную конфигурацию, и применяет параметры по умолчанию.
sed -i -e . : Эти две команды sed изменяют файлы конфигурации для принудительной сборки программ ipmaddr , iptunnel и mii-tool .
Пакет Net-tools содержит arp , dnsdomainname , domainname , hostname , ifconfig , ipmaddr , iptunnel , mii-tool , nameif , netstat , nisdomainname , plipconfig , rarp , route , slattach и ypdomainname .
Описание
arp
arp используется для манипулирования кешем ARP ядра, обычно для добавления и удаления содержимого кеша или для сброса его содержимого в дамп.
dnsdomainname
dnsdomainname отображает системное имя домена DNS .
domainname
domainname отображает или устанавливает системное NIS / YP имя домена.
hostname
hostname отображает или устанавливает имя текущего хоста.
ifconfig
ifconfig это основная утилита для настройки сетевых интерфейсов.
ipmaddr
ipmaddr добавляет, удаляет и показывает широковещательные адреса интерфейса.
iptunnel
iptunnel добавляет, изменяет, удаляет и показывает тунели для интерфейса.
mii-tool
mii-tool проверяет или устанавливает статус единицы Media Independent Interface ( MII ) сетевого интерфейса.
nameif
nameif именует сетевые интерфейсы, основанные на MAC адресах.
netstat
netstat используется для отчета о сетевых подключениях, таблицах маршрутизации и статистике по интерфейсам.
nisdomainname
nisdomainname делает то же самое, что и domainname .
plipconfig
plipconfig используется для управления параметрами PLIP устройства для улучшения его производительности.
rarp
rarp используется для манипулирования таблицей RARP ядра.
route
route используется для манипулирования таблицей IP маршрутизации.
slattach
slattach подсоединяет сетевой интерфейс к последовательной линии. Это позволяет вам использовать обычные линии терминала для связи в режиме точка-точка с другими компьютерами.
ypdomainname
ypdomainname делает то же самое, что и domainname .
Последнее обновление 2005-02-11 08:57:40 -0700