命令行手册

Man » sysctl 手册在线 - sysctl 手册页的详细在线文档

🌍
sysctl - 动态配置内核参数

概要

sysctl [选项] [变量[=值]] [...]
sysctl -p [文件或正则表达式] [...]

描述

sysctl 用于在运行时修改内核参数。可用的参数是 /proc/sys/ 下列出的那些。Procfs 是 Linux 中 sysctl 支持所必需的。您可以使用 sysctl 来读取和写入 sysctl 数据。

参数

变量

要读取的键的名称。例如,kernel.ostype。'/' 分隔符也可以代替 '.'。

变量=值

要设置一个键,请使用变量=值,其中变量是键,值是要设置的值。如果值包含引号或 shell 解析的字符,则可能需要将该值放在双引号中。

-n, --values

使用此选项以禁用在打印值时打印键名。

-e, --ignore

使用此选项以忽略有关未知键的错误。

-N, --names

使用此选项以仅打印名称。它可能对具有可编程补全功能的 shell 有用。

-q, --quiet

使用此选项以不将设置的值显示到标准输出。

-w, --write

强制所有参数都为写入参数,如果无法以这种方式解析它们,则打印错误。

-p[文件], --load[=文件]

从指定的文件或如果没有指定,则从 /etc/sysctl.conf 中加载 sysctl 设置。指定 '-' 作为文件名表示从标准输入读取数据。使用此选项将意味着 sysctl 的参数是文件,这些文件将按指定的顺序读取。文件参数可以指定为正则表达式。

-a, --all

显示当前所有可用值,不包括已弃用和禁止的参数。

--deprecated

将已弃用的参数包含在 --all 值的列表中。

-b, --binary

不换行打印值。

--system

从所有系统配置文件中加载设置。请参见下面的“系统文件优先级”子部分。

-r, --pattern 模式

仅应用与模式匹配的设置。该模式使用扩展正则表达式语法。

-A     -a 的别名

-d     -h 的别名

-f     -p 的别名

-X     -a 的别名

-o     不执行任何操作,为了与 BSD 兼容而存在。

-x     不执行任何操作,为了与 BSD 兼容而存在。

-h, --help

显示帮助文本并退出。

-V, --version

显示版本信息并退出。

文件

/proc/sys
/etc/sysctl.d/*.conf
/run/sysctl.d/*.conf
/usr/local/lib/sysctl.d/*.conf
/usr/lib/sysctl.d/*.conf
/lib/sysctl.d/*.conf
/etc/sysctl.conf

注意事项

系统文件优先级

当使用 --system 选项时,sysctl 将从以下列表中的目录中读取文件,顺序从上到下。一旦加载了给定文件名的文件,则会忽略后续目录中相同名称的任何文件。


/etc/sysctl.d/*.conf
/run/sysctl.d/*.conf
/usr/local/lib/sysctl.d/*.conf
/usr/lib/sysctl.d/*.conf
/lib/sysctl.d/*.conf
/etc/sysctl.conf

所有配置文件都按词法顺序排序,无论它们位于哪个目录中。配置文件可以完全替换(通过在优先级较高的目录中具有相同名称的新配置文件),也可以部分替换(通过具有稍后排序的配置文件)。

已弃用的参数

^ ase_reachable_timeretrans_time 已弃用。sysctl 命令不允许更改这些参数的值。 坚持使用已弃用内核接口的用户应通过其他方式将值推送到 /proc 文件系统。 例如:

echo 256 > /proc/sys/net/ipv6/neigh/eth0/base_reachable_time

禁止的参数

某些内核参数不应读取,因为它们会产生副作用,并且 sysctl 在使用 --all 选项时会跳过它们。

stat_refresh
此参数不返回任何值,但会刷新每个 CPU 的 VM 统计信息。

示例

/sbin/sysctl -a
/sbin/sysctl -n kernel.hostname
/sbin/sysctl -w kernel.domainname="example.com"
/sbin/sysctl -p /etc/sysctl.conf
/sbin/sysctl -a --pattern forward
/sbin/sysctl -a --pattern forward$
/sbin/sysctl -a --pattern 'net.ipv4.conf.(eth|wlan)0.arp'
/sbin/sysctl --pattern '^net.ipv6' --system

参见

proc(5), sysctl.conf(5), regex(7)

报告错误

请将错误报告发送到 _