1. 程式人生 > >Linux 運維工程師經典面試題合集(不斷更新中 ...)

Linux 運維工程師經典面試題合集(不斷更新中 ...)

type ESS 9.png aux 比較 服務器 var 命令 如何

技術分享圖片

寫在前面的話

做運維以來,關註了很多關於互聯網技術,培訓等亂七八糟的公眾號,時不時的就會推一些各種公司的面試題過來。

大致看了一下,發現自己很多知識要麽遺忘了,要麽很難說出個所以然,所以這裏對那些個人覺得很有意思的知識點做個匯總,偶爾再翻看一下,或許受益無窮。

當然,學習永遠是一個過程,這篇博客也正處於完善的過程 ...

進入正題

【1】如何查看 HTTP 的並發請求數與其 TCP 連接狀態?

netstat -n | awk /^tcp/ {++b[$NF]} END {for(a in b) print a,b[a]}

顯示效果:

技術分享圖片

我這裏是臺測試機器,所以顯示的東西比較少,而且我也很少用這個功能,但是覺得還是很有意思。

另外值得一提的是 Linux 服務器打開文件數也是影響並發的重要一環,具體可以查看該文件配置:/etc/security/limits.conf

當然同級目錄下面的 limits.d 目錄下的的配置文件也需要關註,也可以使用 ulimit -n 查看當前的配置數量。

【2】查看每個 IP 地址的連接數:

netstat -n | awk /^tcp/ {print $5} | awk -F: {print $1} | sort | uniq -c | sort -rn

效果如圖:

技術分享圖片

這個東西大致可以看出有沒有人在惡意訪問你的服務器!

【3】通過 tcpdump 查看 80 端口訪問量排前 10 的:

tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." {print $1"."$2"."$3"."$4} | sort | uniq -c | sort -nr |head -10

效果如圖:

技術分享圖片

註意自己機器的 網卡名稱 就行!

【4】統計 access.log 中訪問量前 10 的 IP:

cat access.log | awk {print $1} | sort | uniq
-c | sort -n -r | head -10

效果如圖:

技術分享圖片

這個比較實用,我們可以通過這個操作判斷有些 非人為操作

【5】只查看 /var/log 這一級目錄下面的文件:

find /var/log -maxdepth 1 -type f

簡單的 find 命令考察,有意思的就是 -maxdepth 參數,如果不加默認會把該目錄下的其它目錄下的子文件也顯示

這個在用於我們按照時間點刪除某個目錄下面的文件的時候特別有用

【6】生成 32 位的隨機碼:

cat /dev/urandom | head -1 | md5sum | head -c 32

【7】如何查看二進制文件的內容?

一般通過 hexdump 命令查看,用法:hexdump -C 文件名,沒怎麽用過!

-C 是比較規範的 十六進制和ASCII碼顯示

-c 是單字節字符顯示

-b 單字節八進制顯示

-o 是雙字節八進制顯示

-d 是雙字節十進制顯示

-x 是雙字節十六進制顯示

顯示樣式:

技術分享圖片

【8】ps aux 中的 VSZ 代表什麽意思,RSS 代表什麽意思?

VSZ:虛擬內存集,進程占用的虛擬內存空間
RSS:物理內存集,進程戰用實際物理內存空間

如圖:

技術分享圖片

Linux 運維工程師經典面試題合集(不斷更新中 ...)