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 。