Linux學習之top命令及循環

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列數值
        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地址

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."          

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."

4、說明initrd的作用

initrd 的英文含義是 boot loader initialized RAM disk,即由引導程序初始化的RAM磁盤。initrd是在實際根文件系統可用之前掛載到系統中的一個初始根文件系統。initrd與內核綁定在一起, 並作爲內核引導過程的一部分進行加載。內核然後會將這個initrd文件作爲其階段引導過程的一部分來加載模塊,這樣才能在以後的引導過程中使用真正的文 件系統,並掛載實際的根文件系統。根文件系統可以存儲在包括IDE、SCSI、USB在內的多種介質上,如果將這些設備的驅動都編譯進內核,可以想象內核 會多麼龐大、臃腫。所以可以把initrd看做是在啓動過程中連接內核與根文件系統的一個橋樑。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章