内核参数、top命令、脚本练习、initrd简介

1、列举常见的内核参数以及参数的意义

参数名 取值 说明
net.ipv4.ip_forward 0,1 是否开启数据包转发
net.ipv4.conf.default.rp_filter 0,1 对从默认网卡进来的数据包进行反向路径校验
net.ipv4.conf.default.accept_source_route 0,1 是否接受含有源路由信息的ip包
net.ipv4.tcp_max_tw_buckets size 处于time_wait状态的最大数值,超过则立刻被清除
net.ipv4.ip_local_port_range start end 对外连接端口范围
net.ipv4.tcp_max_syn_backlog size SYN队列的长度
fs.file-max size 系统打开的最大文件句柄数
kernel.hostname string 主机名
net.ipv4.icmp_echo_ignore_all 0,1 忽略所有ping

2、如何通过/proc查看top中展示的进程状态

top命令参数及意义:

参数名 对应/proc路径 说明
PID列 为/proc目录下的数字目录 进程ID,每个进程的PID数字做为目录名称
USER 为/proc/PID/status文件中的以Uid开头行的第一列数字 进程的所属用户
PR 在/proc/PID/stat文件中第18列数值 任务的调度优先级
NI 在/proc/PID/stat文件中第19列数值 表示任务的NICE值
VIRT 在/proc/PID/statm文件中第1列数值(单位为页) 虚拟内存大小(KiB),任务使用的虚拟内存总量。 它包括所有代码,数据和共享库以及已换出的页面和已映射但未使用的页面
RES 在/proc/PID/statm文件中第2列数值(单位为页) 表示驻留内存大小(KiB) ,任务正在使用的非交换物理内存
SHR 在/proc/PID/statm文件中第3列数值(单位为页) 表示共享内存大小(KiB),可能与其他进程共享的内存
S 这行显示的进程状态 为/proc/PID/status文件中State
%CPU CPU使用率,自上一次屏幕刷新以来占用的CPU时间与总CPU时间的百分比。(通过计算得到)
%MEM 内存使用(RES)任务当前使用的可用物理内存份额。(通过计算RES与总内存比率得到)
TIME+ 在/proc/PID/stat文件中体现为两个时间之和 :第14列该任务在用户态运行的时间 和第15列该任务在核心态运行的时间 任务自启动以来使用的总CPU时间,显示百分之一秒的精度
COMMAND /proc/#/status文件中以Name开头的行 进程名

3、分别用while、for循环检测10.0.0.1/24网段存活的IP地址

for:

#!/bin/bash
#
declare -i uphosts=0
declare -i downhosts=0
for i in {1..254}; do
    if ping -W 1 -c 1 10.0.0.$i &> /dev/null; then
        echo "10.0.0.$i is up."
        let uphosts+=1
    else
        echo "10.0.0.$i is down."
        let downhosts+=1
    fi
done
echo "Up hosts: $uphosts. Down hosts: $downhosts."

while:

#!/bin/bash
#
declare -i uphosts=0
declare -i downhosts=0
declare -i i=1
 
hostping(){
    if ping -W 1 -c 1 $1 &> /dev/null; then
        echo "$1 is up."
        return 0
    else
        echo "$1 is down."
        return 1
    fi
}
while [ $i -le 254 ];do
    hostping 10.0.0.$i
    [ $? -eq 0] && let uphosts++ || let downhosts++
    let i++
done
 
echo "Up hosts: $uphosts. Down hosts: $downhosts."

4、说明initrd的作用

initrd 的英文含义是 boot loader initialized RAM disk,即由引导程序初始化的RAM磁盘。initrd是在实际根文件系统可用之前挂载到系统中的一个初始根文件系统。initrd与内核绑定在一起, 并作为内核引导过程的一部分进行加载。内核然后会将这个initrd文件作为其阶段引导过程的一部分来加载模块,这样才能在以后的引导过程中使用真正的文 件系统,并挂载实际的根文件系统。根文件系统可以存储在包括IDE、SCSI、USB在内的多种介质上,如果将这些设备的驱动都编译进内核,可以想象内核 会多么庞大、臃肿。所以可以把initrd看做是在启动过程中连接内核与根文件系统的一个桥梁。

你可能感兴趣的:(内核参数、top命令、脚本练习、initrd简介)