Файловая система /proc

Опубликовано: 25 Июнь, 2015 в разделе: Обучение

Файловая система /proc — это виртуальная файловая система, которая содержит информацию о запущенном ядре Linux.

Мы можем считывать информацию о различных процессах, статистике использования памяти, точках монтирования и так далее.

Так же можно вносить изменения в эту файловую систему, чтобы менять параметры работы ядра Linux «на лету».

К слову сказать, именно из этой файловой системы берут значения утилиты вроде lspci и lsusb, рассматриваемые в предыдущей статье.

Посмотреть содержимое очень просто:

# ls /proc/

Содержимое /proc/

Содержимое /proc/

Мы видим файл cpuinfo, в котором, кстати говоря, содержится информация о процессоре. Просмотрим её:

# cat /proc/cpuinfo

Информация о процессоре

Информация о процессоре

Аналогично дело и с информацией об использовании памяти:

# cat /proc/meminfo

meminfo

meminfo

Точки монтирования описываются в файле mounts:

# cat /proc/mounts

Содержимое точек монтирования

Содержимое точек монтирования

Файл этот похож на /etc/fstab. Только вот fstab — это как бы стартовый конфиг, а /proc/mounts — это карта в реальном времени.

Изменение параметров работы ядра

Кроме получения информации о работающей системе, мы также можем записывать информацию в определённые файлы и менять параметры работы ядра. Для примера, возможность пересылки пакетов через наш сервер определяется значением переменной ip_forward, которая расположена тут /proc/sys/net/ipv4/ip_forward. По умолчанию она равна нулю, в чём легко убедиться.

# cat /proc/sys/net/ipv4/ip_forward

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

Для этого мы отправим значение «1» в файл /proc/sys/net/ipv4/ip_forward. Обратите внимание, здесь я использовал хитрую конструкцию $_, которая означает последний аргумент предыдущей команды. В данном случае это длинный путь к файлу ip_forward, чтобы не набирать повторно и не допустить ошибку.

# echo 1 > $_

echo_ip_forward

Увы, файловая система /proc/ создаётся всякий раз при загрузке компьютера. И все наши изменения здесь исчезают. Но существуют конфигурационный файл, который позволяет записать изменения на постоянной основе.

# vim /etc/sysctl.conf

SYSCTL

SYSCTL

Здесь видим уже знакомый нам параметр net.ipv4.ip_forward = 0

Изменения можно внести прямо в этом файле. А можно воспользоваться утилитой sysctl. Это, кстати, отличный способ править тот или иной параметр.

Просмотреть все параметры, доступные для правки:

# sysctl -a | less

Все параметры sysctl

Все параметры sysctl

Можно также установить параметр ядра:

# sysctl -w net.ipv4.ip_forward="1"

и готово!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.