1、列举常见的内核参数以及参数的意义
(1)net.ipv4.ip_forward:数据包的路由转发开关,设置为1表示开启,0表示关闭。
(2)vm.drop_caches:清空caches,释放内存占用。设置为1表示清空 pagecache
设置为2表示清空 dentries 和 inodes,设置为3表示清空所有缓存(pagecache、dentries 和 inodes)
(3)net.ipv4.icmp_echo_ignore_all:忽略所有外部来的ping请求,但不影响自己对外外的ping操作。
设置为1表示关闭ICMP回应功能,设置0表示开启ICMP回应功能。
(4)kernel.hostname:主机名的内核参数
(5)net.ipv4.tcp_max_tw_buckets:设置TCP最大的timewait数量。默认是180000
(6)net.ipv4.ip_local_port_range :允许系统打开的端口范围,值为两个数字,中间以空格隔开,分别表示最小端口号和最大端口号。
(7)net.ipv4.tcp_tw_recycle:启用timewait快速回收。设置为1表示启用功能。
(8)net.ipv4.tcp_tw_reuse :允许将TIME-WAIT sockets重新用于新的TCP连接。设置为1表示启用功能。
补充:
(1)以上所有的参数分别在 /proc/sys/#/* 每个对应的目录下:
列如: net.ipv4.ip_forward = /proc/sys/net/ipv4/ip_forward
(2)修改参数的值,专用命令sysctl ,或者可以使用echo重定向的方式
列如:~]# echo "test.localhost " > /proc/sys/kernel/hostname
~]#sysctl -w net.ipv4.ip_forward=1
注意:以上修改方式都只对当前有效,如果想永久有效需要修改配置文件:
/etc/sysctl.conf 或者/etc/sysctl.d/*.conf
立即生效的方式:sysctl -p /PATH/TO/CONFIG.FILE
2、如何通过/proc查看top中展示的进程状态
top命令查看到的PID,分别对应/proc/目录下,和PID对应的目录下
PID:进程id,对应为/proc/#,/proc目录下,以进程命名数字的目录。
USER:进程属主,/proc/#/status文件中,以Uid开头行的第一列数字。
PR:优先级。
NI:nice值。
VIRT:虚拟内存集。
RES:常驻内存集占,/proc/#/status文件中以VmRSS开头的行。
SHR:共享内存集,/proc/#/status文件中以VmLib开头的行。
S:进程状态,/proc/#/status文件中以State开头的行。
%CPU:占用CPU时间百分比。
%MEM:占用物理内存百分比,/proc/#/status文件中以VmRSS开头的行。
TIME+:进程运行的CPU时长。
COMMAND:进程名,/proc/#/status文件中以Name开头的行。
3、分别用while、for循环检测10.0.0.1/24网段存活的IP地址
#!/bin/bash
#ping检测10.0.0.1/24网段存活的IP地址
#for循环实现
for i in {1..254};do
ping -w 2 -c 1 10.0.0.$i &>/dev/null
if [ $? -eq 0 ] ;then
echo "10.0.0.$i up"
else
echo "10.0.0.$i down"
fi
done
#whlie循环实现
declare -i i=1
while [ $i -le 254 ] ;do
ping -w 1 -c 1 10.0.0.$i >/dev/null
if [ $? -eq 0 ] ;then
echo "10.0.0.$i up"
else
echo "10.0.0.$i down"
fi
let i++
done
4、说明initrd的作用
initrd 是 boot loader initialized RAM disk的缩写,表示由 boot loader 初始化的内存盘
在 linux内核启动前, boot loader 会将磁盘等存储介质中的 initrd 文件先加载到内存
内核启动时会先访问该内存中的 initrd 文件系统然后才访问真正的根文件系统。启动过程被
分为两个过程,第一过程是执行内存中的 initrd 文件系统中的初始化文件(在Linux2.4
内核是/linuxrc 文件,是由文件系统镜像生成的;在Linux2.6内核是/init文件,是使用
cpio 工具生成),负责加载内核访问根文件系统存储介质的驱动模块, 以及加载根文件
系统。第二过程是执行真正的根文件系统中的 /sbin/init 进程
initrd主要作用:
1.内核启动时加载 initrd img, 挂载根 /
2.以/linuxrc 的指令执行, 一般有扫描系统硬件,从 当前文件系统中找到驱动安装之.
3.挂载系统中真正的根 /