uname, hostname, uptime, free
Сведения о системе — ядро и архитектура, имя хоста и IP, время работы и нагрузка, свободная память
Четыре коротких команды, с которых начинается знакомство с незнакомым сервером: uname — какое ядро и архитектура, hostname — как называется машина и какие у неё IP, uptime — сколько она работает и насколько загружена, free — сколько памяти занято и доступно. Версию дистрибутива показывает файл /etc/os-release.
Синтаксис
uname [-asnrvmo]
hostname [-s|-f|-d|-i|-I] [новое_имя]
uptime [-p|-s]
free [-h|-m|-g] [-w] [-t] [-s сек [-c раз]]
uname — ядро и архитектура
| Опция | Что печатает | Пример |
|---|---|---|
без опций, -s | имя ядра | Linux |
-n | сетевое имя хоста | web01 |
-r | версия (релиз) ядра | 6.8.0-45-generic |
-v | сборка ядра: номер и дата | #45-Ubuntu SMP PREEMPT_DYNAMIC … |
-m | архитектура процессора | x86_64, aarch64 |
-o | операционная система | GNU/Linux |
-p / -i | тип процессора / платформа (часто unknown или повтор -m) | |
-a | всё сразу в порядке -s -n -r -v -m -p -i -o |
hostname — имя машины
| Опция | Что делает |
|---|---|
| без опций | имя хоста (из ядра; при загрузке берётся из /etc/hostname) |
-s | короткое имя — до первой точки |
-f | полное имя (FQDN), через /etc/hosts или DNS |
-d | DNS-домен — часть FQDN после первой точки |
-i | IP-адреса, в которые разрешается имя хоста (через /etc/hosts или DNS) |
-I | все IP-адреса всех сетевых интерфейсов, кроме loopback |
-A | все FQDN машины |
hostname новое_имя | сменить имя до перезагрузки (нужен root) |
Сменить имя навсегда на машине с systemd: hostnamectl set-hostname новое_имя (он же пишет /etc/hostname). Не забудь обновить строку с именем в /etc/hosts.
uptime — время работы и нагрузка
Вывод: 15:22:02 up 19 days, 3:31, 2 users, load average: 0.52, 0.61, 0.70.
| Часть | Что значит |
|---|---|
15:22:02 | текущее время |
up 19 days, 3:31 | сколько система работает с последней загрузки |
2 users | число открытых сессий (из utmp) |
load average | средняя нагрузка за 1, 5 и 15 минут |
| Опция | Что делает |
|---|---|
-p | только время работы словами: up 19 hours, 31 minutes |
-s | дата и время загрузки: 2026-10-12 19:50:58 |
Load average — среднее число процессов, которые выполняются или ждут процессор (а в Linux ещё и ждут диск). Сравнивай с числом ядер (nproc): на 4 ядрах нагрузка 4.0 — полная загрузка, 8.0 — очередь вдвое больше, чем ядер. Рост первой цифры относительно третьей — нагрузка растёт прямо сейчас. Сырые данные — в /proc/loadavg и /proc/uptime (секунды с загрузки).
free — память
total used free shared buff/cache available
Mem: 3.8Gi 2.6Gi 136Mi 21Mi 1.3Gi 1.2Gi
Swap: 4.0Gi 686Mi 3.3Gi
| Столбец | Что значит |
|---|---|
total | вся оперативная память (или swap) |
used | занято: total − available (в procps 4.x, как в Ubuntu 24.04) |
free | совсем не используется |
shared | общая память, в основном tmpfs (/dev/shm, /run) |
buff/cache | дисковый кэш и буферы ядра — освобождаются автоматически, когда память нужна программам |
available | сколько можно выделить новым программам без ухода в swap — главная цифра |
| Опция | Что делает |
|---|---|
-h | человекочитаемо: Gi, Mi (степени 1024) |
-b / -k / -m / -g | в байтах / КиБ (по умолчанию) / МиБ / ГиБ |
--si | степени 1000 вместо 1024 (с -h — G, M) |
-w | широкий вывод: buffers и cache отдельными столбцами |
-t | строка Total — RAM плюс swap |
-s N | обновлять каждые N секунд |
-c N | вместе с -s: сделать N замеров и выйти |
-L | всё в одну строку |
-v | показать committed-память и её предел |
Подробная картина — в /proc/meminfo.
Примеры
# ядро, архитектура и дистрибутив одним взглядом
uname -srm
grep PRETTY_NAME /etc/os-release
# имя для скрипта: подставить архитектуру в URL загрузки
arch=$(uname -m)
echo "https://example.com/tool-linux-$arch.tar.gz"
# короткое имя хоста и все IP
hostname -s
hostname -I
# когда была загрузка и сколько ядер — для оценки load average
uptime -s
nproc
cat /proc/loadavg
# память в удобных единицах, с итогом
free -h -t
# только доступная память в МиБ — для скриптов
free -m | awk '/^Mem:/ { print $7 }'
# следить за памятью: 5 замеров раз в 2 секунды
free -h -s 2 -c 5
# процент занятой памяти
free | awk '/^Mem:/ { printf "%.0f%%\n", ($2 - $7) / $2 * 100 }'
Подводные камни
- «Свободно мало» — ещё не проблема. Linux занимает свободную память под дисковый кэш, поэтому
freeпочти всегда небольшой. Смотри наavailable; тревожный признак — малыйavailableи растущийusedв swap. - В контейнере
freeиuptimeпоказывают хост. Лимит памяти контейнера (docker run -m 256m) вfreeне виден — он в/sys/fs/cgroup/memory.max, а потребление — в/sys/fs/cgroup/memory.current.uname -rиuptimeтоже относятся к ядру хоста. uname -r— это ядро, а не дистрибутив. Версию Ubuntu ищи в/etc/os-releaseилиlsb_release -a.hostname новое_имядействует до перезагрузки. Для постоянной смены нужен/etc/hostnameилиhostnamectl. В контейнере без привилегий смена имени не работает вовсе.hostname -iразрешает имя через/etc/hosts, поэтому может вернуть127.0.1.1или другой адрес оттуда, а не адрес сетевой карты. Реальные адреса интерфейсов —hostname -Iилиip -br addr.- Load average — не проценты. Значение 2.0 на 16 ядрах — почти простой, а на одном — перегрузка. Высокая нагрузка при низком использовании процессора обычно значит процессы, ждущие диск (состояние
Dвps).