欢迎 on it road

sysctl 实用程序

sysctl 实用程序还可用于查看或者修改 /proc/sys 目录中可写文件的值。
要查看当前内核设置,请输入:

# sysctl -a
abi.vsyscall32 = 1
crypto.fips_enabled = 0
debug.exception-trace = 1
...

如果单独查看每个文件,则会看到相同的信息,例如:

# cat /proc/sys/abi/vsyscall32
1

echo 命令可用于为 /proc/sys 中的可写文件赋值:

# echo 1 > /proc/sys/net/ipv4/ip_forward

等效的 sysctl 命令紧随其后,立即显示更改的结果:

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

当系统重新启动时,使用 echo 和 sysctl 所做的更改将丢失。
要保留自定义设置,请将它们添加到 /etc/sysctl.conf 文件中。
每次系统启动时,添加到此文件的值都会生效。

Linux 中的 sysfs 文件系统 (/sys)

除了 /proc,内核还将信息导出到另一个名为 sysfs 的虚拟文件系统。
sysfs 被 udev 等程序用来访问设备和设备驱动程序信息。
sysfs 的创建有助于清理 proc 文件系统,因为大部分硬件信息已从 proc 移动到 sysfs。

sysfs 文件系统挂载在 /sys 上。
显示了顶级目录。
以下是其中一些目录的简要说明:

/sys/block

该目录包含系统中每个块设备的条目。
符号链接指向物理设备树中设备映射到的物理设备。
例如,sda 磁盘的属性位于以下目录中:

# ls -l /sys/block/sda/
total 0
-r--r--r-- 1 root root 4096 Mar 24 13:03 alignment_offset
lrwxrwxrwx 1 root root    0 Mar 24 13:04 bdi -> ../../../../../../../../virtual/bdi/8:0
-r--r--r-- 1 root root 4096 Mar 24 13:03 capability
-r--r--r-- 1 root root 4096 Mar 24 13:03 dev
lrwxrwxrwx 1 root root    0 Mar 24 13:04 device -> ../../../0:0:0:0
-r--r--r-- 1 root root 4096 Mar 24 13:03 discard_alignment
-r--r--r-- 1 root root 4096 Mar 24 13:03 events
-r--r--r-- 1 root root 4096 Mar 24 13:03 events_async
-rw-r--r-- 1 root root 4096 Mar 24 13:03 events_poll_msecs
-r--r--r-- 1 root root 4096 Mar 24 13:03 ext_range
drwxr-xr-x 2 root root    0 Mar 24 13:04 holders
-r--r--r-- 1 root root 4096 Mar 24 13:03 inflight
drwxr-xr-x 2 root root    0 Mar 24 13:04 integrity
drwxr-xr-x 2 root root    0 Mar 24 13:04 power
drwxr-xr-x 3 root root    0 Mar 24 13:04 queue
-r--r--r-- 1 root root 4096 Mar 24 13:03 range
-r--r--r-- 1 root root 4096 Mar 24 13:03 removable
-r--r--r-- 1 root root 4096 Mar 24 13:03 ro
-r--r--r-- 1 root root 4096 Mar 24 13:03 size
drwxr-xr-x 2 root root    0 Mar 24 13:04 slaves
-r--r--r-- 1 root root 4096 Mar 24 13:03 stat
lrwxrwxrwx 1 root root    0 Mar 24 13:04 subsystem -> ../../../../../../../../../class/block
-rw-r--r-- 1 root root 4096 Mar 24 13:03 uevent

/sys/bus

该目录包含内核支持的每种物理总线类型的子目录。
每个总线类型都有两个子目录: devices 和 drivers 。
设备目录列出了在该类型总线上发现的设备。
驱动程序目录包含使用总线类型注册的每个设备驱动程序的目录。
可以查看和操作驱动程序参数。
例如,要列出虚拟设备的驱动程序,请输入:

# ls -lR /sys/bus/xen/drivers
/sys/bus/xen/drivers:
total 0
drwxr-xr-x. 2 root root 0 Mar 24 13:37 vbd
drwxr-xr-x. 2 root root 0 Mar 24 13:37 vif
/sys/bus/xen/drivers/vbd:
total 0
--w-------. 1 root root 4096 Mar 24 13:40 bind
lrwxrwxrwx. 1 root root    0 Mar 24 13:40 module -> ../../../../module/xen_blkfront
--w-------. 1 root root 4096 Mar 24 13:37 uevent
--w-------. 1 root root 4096 Mar 24 13:40 unbind
lrwxrwxrwx. 1 root root    0 Mar 24 13:40 vbd-51792 -> ../../../../devices/vbd-51792
lrwxrwxrwx. 1 root root    0 Mar 24 13:40 vbd-768 -> ../../../../devices/vbd-768
/sys/bus/xen/drivers/vif:
total 0
--w-------. 1 root root 4096 Mar 24 13:40 bind
lrwxrwxrwx. 1 root root    0 Mar 24 13:40 module -> ../../../../module/xen_netfront
--w-------. 1 root root 4096 Mar 24 13:37 uevent
--w-------. 1 root root 4096 Mar 24 13:40 unbind
lrwxrwxrwx. 1 root root    0 Mar 24 13:40 vif-0 -> ../../../../devices/vif-0

/sys/class

该目录包含向内核注册的每个设备类。
设备类描述设备的功能类型。
示例包括输入设备、网络设备和块设备。

/sys/devices

该目录包含系统上所有设备的全局设备层次结构。
该目录还包含一个平台目录和一个系统目录。
平台目录包含特定于特定平台的外围设备,例如设备控制器。
系统目录包含非外围设备,例如 CPU 和 APIC。

/sys/firmware

该目录包含带有固件对象和属性的子目录。

/sys/module

该目录包含加载到内核中的每个模块的子目录,例如:

# ls /sys/module/xen*
/sys/module/xen_blkfront:
coresize  drivers  holders  initsize  initstate  notes  parameters  refcnt  rhelversion  sections  srcversion  taint  uevent
/sys/module/xen_netfront:
coresize  drivers  holders  initsize  initstate  notes  parameters  refcnt  rhelversion  sections  srcversion  taint  uevent

/sys/power

可以从此目录控制系统电源状态。
磁盘属性控制系统挂起到磁盘的方法。
state 属性允许进程进入低功耗状态。

日期:2020-09-17 00:14:42 来源:oir作者:oir