名称
在系统运行时,配置修改内核参数
概要
sysctl [options] [variable[=value]] [...]
sysctl -p [file or regexp] [...]
描述
sysctl用于在linux系统运行时修改内核参数。可以修改的参数都在 /proc/sys/文件夹下。Linux中的sysctl支持需要Procfs。您可以使用sysctl来读写sysctl数据。
参数
- variable
要从中读取的键的名称。例如:sysctl fs.nr_open。
- variable=value
要设置键,使用variable=value形式,其中variable是键,value是设置键的值。如果值包含引号或shell解析的字符,您可能需要将值括在双引号中。这需要使用-w参数。
- -n, --values
使用此选项可在打印值时禁用键名的打印。
- -e, --ignore
使用此选项可忽略关于未知键的错误。
- -N, --names
使用此选项只打印名称。对于具有可编程完成功能的shell,它可能很有用。
- -q, --quiet
使用此选项可不显示设置为stdout的值。
- -w, --write
当您想要更改sysctl设置时,请使用此选项。
- -p[FILE], --load[=FILE]
从指定文件或/etc/sysctl.conf(如果没有给出)加载sysctl设置。指定-作为文件名意味着从标准输入读取数据。使用这个选项意味着sysctl的参数是文件,按照指定的顺序读取这些文件。file参数可以指定为正则表达式。
- -a, --all
显示当前可用的所有值。
- --deprecated
在--all值列表中包含已弃用的参数。
- -b, --binary
打印不带换行的值。
- --system
从所有系统配置文件加载设置。按照从上到下的给定顺序从下面列表中的目录中读取文件。一旦加载了给定文件名的文件,就会忽略后续目录中同名的任何文件。
/run/sysctl.d/*.conf
/etc/sysctl.d/*.conf
/usr/local/lib/sysctl.d/*.conf
/usr/lib/sysctl.d/*.conf
/lib/sysctl.d/*.conf
/etc/sysctl.conf
- -r, --pattern pattern
只应用匹配模式的设置。该模式使用扩展的正则表达式语法。
- -A Alias of -a
- -d Alias of -h
- -f Alias of -p
- -X Alias of -a
- -o Does nothing, exists for BSD compatibility.
- -x Does nothing, exists for BSD compatibility.
- -h, --help
Display help text and exit.
- -V, --version
Display version information and exit.
样例
查看所有内核配置
/sbin/sysctl -a
查看对应配置的值
/sbin/sysctl -n fs.nr_open
修改配置
/sbin/sysctl -w kernel.domainname="example.com"
从 /etc/sysctl.conf 文件创建或修改更新配置
/sbin/sysctl -p /etc/sysctl.conf
通过匹配规则正则查看配置
/sbin/sysctl -a --pattern fs.nr_open
/sbin/sysctl -a --pattern forward$
/sbin/sysctl -a --pattern 'net.ipv4.conf.(eth|wlan)0.arp'
/sbin/sysctl --system --pattern '^net.ipv6'
相关文件
/proc/sys /etc/sysctl.conf