linux学习笔记--sysctl命令

时间:2021-01-11 14:32:41

sysctl命令被用于在内核运行时动态地修改内核的运行参数,可用的内核参数在目录/proc/sys中。它包含一些TCP/IP堆栈

和虚拟内存系统的高级选项,这可以让有经验的管理员提高引人注目的系统性能。用sysctl可以读取设置超过五百个系统

变量。

语法:

sysctl (选项) (参数)
选项:

-n:打印值时不打印关键字
-e:忽略未知关键字错误
-N:仅打印名称
-w:当改变sysctl设置时使用此项
-p:从配置文件”/etc/sysctl.conf“加载内核参数设置
-a:打印当前所有可用的内核参数变量和值
-A:以表格方式打印当前所有可用的内核参数变量和值
参数:

变量=值:设置内核参数对应的变量值

实例:

查看所有可读变量:

sysctl -a

读一个指定的变量:例如kern.maxproc:

sysctl kern.maxproc kern.maxproc:1044

要设置一个指定的变量,直接用variable=value这样的语法:

sysctl kern.maxfiles=5000
kern.maxfiles: 2088 -> 5000
您可以使用sysctl修改系统变量,也可以通过编辑sysctl.conf文件来修改系统变量。sysctl.conf看起来很像rc.conf。它

用variable=value的形式来设定值。指定的值在系统进入多用户模式之后被设定。并不是所有的变量都可以在这个模式

下设定。

sysctl变量的设置通常是字符串,数字或者布尔型。(布尔型用1来表示yes,用0来表示no)

dev.cdrom.info = drive # of slots:      1   
dev.cdrom.info = Can close tray: 1
dev.cdrom.info = Can open tray: 1
dev.cdrom.info = Can lock tray: 1
dev.cdrom.info = Can change speed: 1
dev.cdrom.info = Can select disk: 0
dev.cdrom.info = Can read multisession: 1
dev.cdrom.info = Can read MCN: 1
配置sysctl

编辑此文件:/etc/sysctl.conf

如果希望屏蔽别人ping你的主机,则加入以下代码:

#Disable ping requests
net.ipv4.icmp_echo_ignore_all = 1
编辑完成后,执行命令使变动立即生效:

/sbin/sysctl -p
/sbin/sysctl -w net.ipv4.route.flush=1