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看做是在啓動過程中連接內核與根文件系統的一個橋樑。