Linux: sysctl 命令
sysctl 命令用于运行时配置系统内核参数。
常用参数:sysctl -a | -p | -w
关联man手册:
man sysctl
man sysctl.conf
关联文件(目录):
/proc/sys
/etc/sysctl.conf
1.查看运行时内核参数
以 net.ipv4.ip_local_port_range 为例:
$ sysctl net.ipv4.ip_local_port_range
net.ipv4.ip_local_port_range = 32768 61000
$ sysctl -a | grep net.ipv4.ip_local_port_range
net.ipv4.ip_local_port_range = 32768 61000
其实我更喜欢:
$ [root@test1280 ~]# sysctl -a | grep -i range
net.ipv4.ip_local_port_range = 32768 61000
net.ipv4.ping_group_range = 1 0
内核参数太多,用grep+key word我倒是更喜欢。
可以通过-a参数查看所有的可配置内核参数(在CentOS 6.8中有700+参数):
$ sysctl -a
2.修改运行时内核参数
$ echo "32768 62000" > /proc/sys/net/ipv4/ip_local_port_range
$ sysctl -w net.ipv4.ip_local_port_range="32768 61000"
注意:
上面的两种方式都是直接修改内存中的内核参数,非持久化方式。
如果要持久化修改(保留配置包本地文件,重启系统或服务进程仍然有效),可以:
$ echo "net.ipv4.ip_local_port_range=32768 62000" >> /etc/sysctl.conf
即,内核参数配置文件在/etc/sysctl.conf,可以手动修改配置文件,然后执行:
$ sysctl -p
使得重载/etc/sysctl.conf配置到运行时内核参数中。
3.重载配置文件到内核参数
sysctl -p [config file]
有 config file,重载指定配置文件
无 config file,重载/etc/sysctl.conf配置文件
4.配置文件格式
默认配置文件(sysctl -p):/etc/sysctl.conf
一行一对键值,key=value
注释以#或;开头。
# comment
; comment
token = value
可以参考 man sysctl.conf 。