Смотрим информацию о системе в Linux (Ubuntu, CentOS, Fedora)
Тем кто только-только пересел с операционной системы Windows на более сложный Linux, порой бывает сложно выполнить те операции, которые на знакомой ОС делались за пару секунд.
Одна из подобных задач — посмотреть основную информацию о системе: какой стоит процессор, материнская плата, версия операционной системы, разрядность, ядро и т.п. В старой доброй Windows достаточно было вывести свойства системы или открыть диспетчер задач. А тут всё сложнее. Но вся сила Линукс — в консоли и есть ряд специальных команд командой строки, которые помогут узнать всю необходимую информацию о Вашей ОС Linux, будь то Ubuntu, CentOS, Fedora или иной дистрибутив. Сейчас я Вам их покажу!
hwinfo — эта утилита выдаёт массу информации о комплектующих: процессоре, материнской плате, оперативной памяти, видеокарте, жесткому диску и т.п. К сожалению, не во всех дистрибутивах она присутствует, но установить ещё случай чего — проще простого:
— в Debian, Ubuntu: sudo apt-get install hwinfo
— в Fedora и Red Hat: yum install hwinfo
Чтобы вывести основную информацию, воспользуйтесь ключом —short.
lshw — эта команда выдаёт полную информацию о аппаратной части компьютера или ноутбука.
Конечно, до уровная утилиты hwinfo ещё далеко, но основную информацию получить вполне реально. Команда lshw выполняется с правами рута — sudo lshw.
cat /proc/cpuinfo — вывод полной информации о процессоре, установленном на ПК.
cat /proc/meminfo — подробные данные о полном объёме оперативной памяти, сколько её занято и сколько свободно.
free -m — команда похожа по результату на предыдущую, за тем лишь результатом, что вывод будет в виде небольшой таблицы.
lspci | grep VGA — эта директива отобразит информацию по установленной видеокарте.
lspci | grep Audio — смотрим какая на компьютере установлена звуковая карта.
df -H — подробная информация по разделам жесткого диска, их объём и текущая загрузка.
lspci | grep Ethernet — модель и производитель сетевого адаптера ПК.
uname -a — эта команда отобразит в консоли основные данные по операционной системе Linux — версию ядра, дистрибутива, а так же используемую архитектуру — 32 или 64 бита).
uname -r — выводится информация о версии ядра ОС.
cat /proc/version — вывод команды полностью аналогичен предыдущей.
lsb_release -a — здесь в качестве результата выполнения команды будет название установленного дистибутива Линукс и его версия:
cat /etc/*release* — результат выполнения команды будет во много аналогичным предшествующей директиве. То есть будет показана инфа о дистрибутиве и его версии.
Важное отличие — если Вы используете ОС построенную на каком либо дистрибутиве, то команда отобразить и информацию о базовом дистрибутиве Линукс.
ls -clt / | tail -n 1 | awk ‘< print $7, $6, $8 >’ — эта команда отобразит Вам дату и время установки системы.
ls -dl /var/log/installer/ — эта команда Linux так же позволяет узнать дату и время установки системы.
cat /etc/issue — результат выполнения команды аналогичен предыдущей. Вам будет показана версия дистрибутива ОС.
С помощью этого списка основных команд Вы сможете без проблем посмотреть и узнать основную информацию о ПК и операционной системе.
# Сбор системных данных в 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.