Как проверить, установлен ли параметр sysctl в Linux

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы научитесь проверять, установлен ли определенный параметр sysctl в Linux. Мы рассмотрим три способа достижения этого: перечисление всех параметров ядра с помощью команды sysctl -a, изучение файла конфигурации sysctl системы по пути /etc/sysctl.conf и непосредственная проверка значения параметра в файловой системе /proc/sys. По завершении этого практического занятия вы получите навыки, позволяющие эффективно проверять и понимать настройки параметров ядра в своей системе Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/BasicFileOperationsGroup -.-> linux/less("File Paging") subgraph Lab Skills linux/cat -.-> lab-558769{{"Как проверить, установлен ли параметр sysctl в Linux"}} linux/less -.-> lab-558769{{"Как проверить, установлен ли параметр sysctl в Linux"}} end

Перечисление параметров sysctl с помощью команды sysctl -a

На этом этапе мы рассмотрим, как просматривать и понимать параметры ядра с использованием команды sysctl. Ядро Linux управляет многими аспектами поведения системы, и эти аспекты контролируются параметрами, которые можно просматривать и иногда изменять во время выполнения.

Команда sysctl используется для изменения параметров ядра во время выполнения. Эти параметры обычно находятся в каталоге /proc/sys/.

Чтобы увидеть список всех доступных параметров ядра и их текущих значений, вы можете использовать команду sysctl -a. Опция -a сообщает команде sysctl отобразить все параметры.

Откройте терминал, если он еще не открыт. Помните, что вы можете найти значок Xfce Terminal слева на рабочем столе.

Введите следующую команду и нажмите Enter:

sysctl -a

Вы увидите длинный список вывода, похожий на этот (точный вывод может отличаться в зависимости от системы):

abi.vsyscall32 = 1
fs.aio-max-nr = 1048576
fs.aio-nr = 0
fs.dentry-state = 100000, 96000, 0, 0, 0
fs.dir-notify-enable = 1
fs.file-max = 9223372036854775807
fs.file-nr = 1024      0       9223372036854775807
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 128
fs.inotify.max_user_watches = 524288
...

В этом выводе показано имя каждого параметра (например, fs.file-max) и его текущее значение. Эти параметры контролируют различные аспекты работы ядра, такие как сеть, поведение файловой системы, управление памятью и многое другое.

Прокрутка этого списка может быть трудоемкой, но это дает вам полное представление о том, что ядро управляет. Вы можете использовать пробел для прокрутки страницами вниз и q для выхода из просмотра, если вывод длинный и отображается с помощью постраничного просмотра, например, less.

На данный момент просто выполнение команды достаточно для завершения этого этапа. Вы успешно перечислили все параметры ядра.

Нажмите Продолжить, чтобы перейти к следующему этапу.

Проверка конфигурации sysctl с помощью команды cat /etc/sysctl.conf

На предыдущем этапе вы увидели длинный список параметров ядра с помощью команды sysctl -a. Хотя sysctl -a показывает текущие значения, эти значения могут быть установлены при загрузке системы из файлов конфигурации.

Один из основных файлов конфигурации для параметров sysctl - это /etc/sysctl.conf. Этот файл содержит настройки, которые применяются при запуске системы.

Давайте посмотрим на содержимое этого файла конфигурации с помощью команды cat. Команда cat используется для отображения содержимого файлов.

Введите следующую команду в терминале и нажмите Enter:

cat /etc/sysctl.conf

Вы увидите содержимое файла /etc/sysctl.conf. Этот файл часто содержит закомментированные строки (начинающиеся с #), объясняющие назначение различных настроек, а также строки, которые устанавливают определенные параметры ядра в формате parameter = value.

Вот пример того, что вы можете увидеть (точное содержимое может отличаться):

## /etc/sysctl.conf - Configuration file for setting system variables
#
## For more information, see sysctl(8) and sysctl.conf(5).

## Kernel sysctl configuration file for Debian GNU/Linux
#
## For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) for details.

## Uncomment this to enable software suspend
#kernel.suspend_state = 1

## Uncomment this to enable IPv4 forwarding
#net.ipv4.ip_forward = 1

## Uncomment this to enable IPv6 forwarding
#net.ipv6.conf.all.forwarding = 1

## Uncomment this to enable TCP SYN Cookie Protection
## This protects against SYN flood attacks
#net.ipv4.tcp_syncookies = 1

## Increase the maximum number of open files for the system
#fs.file-max = 100000

## Increase the maximum number of TCP connections
#net.ipv4.tcp_max_syn_backlog = 2048
#net.ipv4.tcp_max_tw_buckets = 4096

Строки, которые не закомментированы (не начинаются с #), являются активными настройками, которые будут применены. Например, строка вида net.ipv4.ip_forward = 1 включит IP-передачу.

Просмотр этого файла помогает вам понять, какие параметры ядра явно устанавливаются при запуске системы.

Вы успешно просмотрели содержимое основного файла конфигурации sysctl.

Нажмите Продолжить, чтобы перейти к следующему этапу.

Проверка параметров в /proc/sys

На предыдущих этапах вы использовали команду sysctl -a для перечисления параметров ядра и cat /etc/sysctl.conf для просмотра файла конфигурации. Теперь давайте посмотрим, где эти параметры фактически представлены в файловой системе.

Параметры ядра, управляемые sysctl, доступны через специальную виртуальную файловую систему, расположенную в /proc/sys. Эта файловая система не хранит реальные файлы на диске, а предоставляет интерфейс к структурам данных ядра.

Структура каталога /proc/sys отражает иерархические имена параметров sysctl. Например, параметр net.ipv4.ip_forward соответствует файлу /proc/sys/net/ipv4/ip_forward.

Давайте снова используем команду cat для просмотра значения конкретного параметра непосредственно из файловой системы /proc/sys. Мы рассмотрим параметр kernel.hostname, который показывает имя хоста системы.

Введите следующую команду в терминале и нажмите Enter:

cat /proc/sys/kernel/hostname

Вы должны увидеть имя хоста системы, которое, вероятно, будет labex в этой среде:

labex

Теперь рассмотрим другой пример - параметр fs.file-max, который мы видели в выводе команды sysctl -a.

Введите следующую команду и нажмите Enter:

cat /proc/sys/fs/file-max

Вы увидите текущее максимальное количество открытых файлов, разрешенное на системе:

9223372036854775807

Это показывает, что значения, которые вы видите с помощью sysctl -a, можно напрямую получить и прочитать из файлов в каталоге /proc/sys. Вы можете использовать стандартные команды манипулирования файлами, такие как cat, для чтения их значений.

Понимание файловой системы /proc/sys является ключом для работы с параметрами ядра, так как это основой механизм, с которым взаимодействует sysctl.

Вы успешно проверили параметры ядра, просмотрев соответствующие файлы в /proc/sys.

Нажмите Продолжить, чтобы завершить этот практический урок.

Резюме

В этом практическом уроке мы научились проверять, установлены ли параметры sysctl в Linux. Мы начали с использования команды sysctl -a для перечисления всех доступных параметров ядра и их текущих значений, что дало нам полное представление о конфигурации ядра во время выполнения.

Затем мы изучили, как проверить постоянную конфигурацию sysctl, просмотрев файл /etc/sysctl.conf с помощью команды cat. Наконец, мы научились проверять текущее значение конкретного параметра, напрямую исследуя соответствующий файл в каталоге /proc/sys. Эти шаги предоставляют несколько методов для понимания и подтверждения состояния параметров ядра.