学习总结第七期

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

  • 查看方式  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

 

2、如何通过/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开头的行。

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

 

for循环:

#!/bin/bash
#
declare -i a=0
for a in {1..255};do
if ping -w 2 -c 2 10.0.0.$a &>/dev/null;then
echo "10.0.0.$a is up"
else
echo "10.0.0.$a is down"
fi
done


while循环:

#!/bin/bash
#
declare -i a=0
declare -i b=0
declare -i c=0

while [ $a -le 255 ];do
if ping -w 2 -c 2 10.0.0.$a &>/dev/null;then
echo "10.0.0.$a is up"
else
echo "10.0.0.$a is down"
fi
let a++
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)使linux 发行版适应各种不同的硬件架构

           Linux发行版在内核中只编译了基本的硬件驱动,在安装过程中通过检测系统硬件,生成包含安装系统硬件

          驱动的 initrd。linux 发行版必须适应各种不同的硬件架构,但又不可能把所有的驱动编译进内核,否则内 

          核会变得臃肿庞大。所以Initrd成为linux 发行版的必备部件。

 (2)livecd适应复杂的硬件环境。

           livecd是一种从CD光盘中直接引导出一个可用的Linux系统。这种方式面临更为复杂的硬件环境,也需要使

          用Initrd技术

(3)usb启动盘必备技术

          因为usb从驱动加载到设备真正可用大概需要几秒钟时间。如果将 usb 驱动编译进内核,那在内核访问 usb

          设备时, usb 设备通常没有初始化完毕。所以改为在 initrd 中加载 usb 驱动,然后休眠几秒中,等待 usb

          设备初始化完毕后再挂载 usb 设备中的文件系统。

(4)实现个性化 bootsplash

          Boot-splash通过对内核打补丁来改变linux控制台对图像显示的支持,通过用户空间程式来定制启动logo、

          设定控制台背景和显隐启动时的字符信息,甚至能够支持开机画面的动画显示。在 linuxrc 脚本中可以很方

          便地启用个性化 bootsplash。

猜你喜欢

转载自www.cnblogs.com/yurong001122/p/11336296.html