SYSCTL(8) | System Manager's Manual | SYSCTL(8) |
名称¶
sysctl - 在运行时配置内核参数
概述¶
sysctl [option ...] variable[=value] ...
sysctl -p file-or-regexp ...
描述¶
sysctl 用于在运行时修改内核参数。可用的参数列在 /proc/sys/ 下。在 Linux 中支持 sysctl 需要 procfs。您可以使用 sysctl 来读取和写入 sysctl 数据。
参数¶
- 变量
- 要读取的键的名称。一个例子是 kernel.ostype。也可以使用 "/" 分隔符来代替 "."。
- 变量=值
- 要设置键,请使用 变量=值 的形式,其中 变量 是键,值 是要设置的值。如果该值包含能被 shell 解析的引号或字符,则可能需要将该值括在双引号中。
- -n, --values
- 使用此选项可在打印值时不打印键的名称。
- -e, --ignore
- 使用此选项可以忽略有关未知的键的错误。
- -N, --names
- 使用此选项仅打印名称。此选项对于具有可编程的自动补全功能的 shell 可能很有用。
- -q, --quiet
- 使用此选项阻止将已设置的值显示在标准输出。
- -w, --write
- 强制所有参数为写入参数,如果无法以这种方式解析它们,则输出一个错误。
- -p[文件], --load[=文件]
- 从指定的文件加载 sysctl 设置,如果没有指定,则加载 /etc/sysctl.conf。指定 - 作为文件名意味着从标准输入读取数据。使用此选项意味着 sysctl 的参数是文件,按照指定的顺序读取。文件参数可以是正则表达式。
- -a, --all
- Display all values currently available except deprecated and verboten parameters.
- --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 file precedence¶
当使用 --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 |
所有配置文件将按字典序排序,无论它们位于哪个目录。配置文件可以被完全替换(通过在更高优先级的目录中放置同名的新配置文件)或部分替换(通过使用排序在更后面的配置文件)。
The file /etc/sysctl.conf is read last which means it can replace/override any parameters previously set in files in the listed directories.
Deprecated parameters¶
base_reachable_time 和 retrans_time 已弃用。sysctl 命令不允许更改这些参数的值。坚持使用已弃用的内核接口的用户应通过其他方式将值推送到 /proc 文件系统。例如:
echo 256 > /proc/sys/net/ipv6/neigh/eth0/base_reachable_time
Verboten parameters¶
Certain kernel parameters should not be read due to side-effects and will be skipped by sysctl using the --all option.
- stat_refresh
- This parameter returns no value but flushes per-cpu vm statistics.
示例¶
/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
参见¶
报告错误¶
Please send bug reports to procps@freelists.org.
2024-07-19 | procps-ng |