馬哥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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章