马哥linux作业--第八周

Q1:列举常见的内核参数以及参数的含义。

可用sysctl -a查看所有内核参数及其值。

  • 常见参数
参数名 取值 说明
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

Q2:如何通过/proc查看top中展示的进程状态。

  • 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开头的行。

Q3:分别用whilefor循环检测10.0.0.1/24网段存活的ip地址。

#! /usr/bin/env bash

for subfix in `seq 1 254`; do
    ip=10.0.0.${subfix}
    if ping -W 1 -c 1 ${ip} &> /dev/null; then
        echo "${ip} is alive"
    fi
done
#! /usr/bin/env bash

subfix=1

while [ ${subfix} -lt 255 ]; do
    ip=10.0.0.${subfix}
    if ping -W 1 -c 1 ${ip} &> /dev/null; then
        echo "${ip} is alive"
    fi
    subfix=$[$subfix+1]
done

Q4:说明initrd的作用。

initrd是系统安装完成后编译生成的,可在内存中运行的临时根文件系统。
initrd所在分区必须是kernel所能驱动的格式(比如ext4,而不是lvm)。
initrd用于提供kernel加载root fs所需的驱动。因为不可能把所有驱动都编译进内核,所以在系统安装完成后,将加载root fs所需的驱动编译进initrd中,kernel先加载initrd做为临时root fs,从中读取需要的驱动,加载真正的root fs,再切换根到真正的root fs

猜你喜欢

转载自blog.51cto.com/14058589/2339149