内核参数、top命令、脚本练习、initrd简介-创新互联

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

  1. 列举常见的内核参数以及参数的意义
    (1)net.ipv4.ip_forward:数据包的路由转发开关,设置为1表示开启,0表示关闭
    (2)net.ipv4.conf.default.rp_filter对从默认网卡进来的数据包进行反向路径校验,设置为1表示开启,0表示关闭
    (3)net.ipv4.conf.default.accept_source_route是否接受含有源路由信息的ip包,设置为1表示开启,0表示关闭
    (4)net.ipv4.icmp_echo_ignore_all:忽略所有外部来的ping请求,但不影响自己对外外的ping操作。设置为1表示关闭ICMP回应功能,设置0表示开启ICMP回应功能。
    (5)kernel.hostname:主机名的内核参数
    (6)net.ipv4.tcp_max_tw_buckets:设置TCP大的timewait数量。默认是180000
    (7)net.ipv4.ip_local_port_range :允许系统打开的端口范围,值为两个数字,中间以空格隔开,分别表示最小端口号和大端口号。
    (8)net.ipv4.tcp_tw_recycle:启用timewait快速回收。设置为1表示启用功能。

    补充:
    (1)以上所有的参数分别在 /proc/sys/#/* 每个对应的目录下:
    例如: net.ipv4.ip_forward = /proc/sys/net/ipv4/ip_forward
    (2)修改参数的值,专用命令sysctl ,或者可以使用echo重定向的方式

    普陀网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。创新互联自2013年创立以来到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联
    例如:~]# 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命令参数及意义:
参数名 对应/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
%CPUCPU使用率,自上一次屏幕刷新以来占用的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地址:
(1)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 ip."
        let uphosts+=1
    else
        echo "10.0.0.$i is down."
        let downhosts+=1
    fi
done
echo "Up hosts: $uphosts, Down hosts: $downhosts."

(2)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的缩写,表示由 boot loader 初始化的内存盘.在 linux内核启动前, boot loader 会将磁盘等存储介质中的 initrd 文件先加载到内存.内核启动时会先访问该内存中的 initrd 文件系统然后才访问真正的根文件系统。启动过程被分为两个过程,第一过程是执行内存中的 initrd 文件系统中的初始化文件(在Linux2.4 内核是/linuxrc 文件,是由文件系统镜像生成的;在Linux2.6内核是/init文件,是使用 cpio 工具生成),负责加载内核访问根文件系统存储介质的驱动模块, 以及加载根文件系统。第二过程是执行真正的根文件系统中的 /sbin/init 进程
initrd主要作用:
1.内核启动时加载 initrd img, 挂载根 /
2.以/linuxrc 的指令执行, 一般有扫描系统硬件,从 当前文件系统中找到驱动安装之.
3.挂载系统中真正的根 /

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文标题:内核参数、top命令、脚本练习、initrd简介-创新互联
网站URL:http://azwzsj.com/article/deepcp.html