Linux运维工程师面试题第三套
1、linux如何掛在windows下的共享目錄?
mount -t cifs -o username=windows登陸賬號,password="windows賬號對應的密碼"//16.187.190.50/test /mnt/linux目標文件夾
或者 ?muout.cifs ?//本機IP地址/test /mut/linux目標文件夾 -o username="windows登陸賬號",password="windows賬號對應的密碼"
【評析】這套題其實是蠻有難度,從第一題就能看出來,有點下馬威的意思。掛載本身不難,但是掛載到windows共享目錄在實際中應用到場合不多,所以這道題有條件可以自己試試,沒條件就背下來。注意空格,注意逗號。
2、查看http的并發請求數與其TCP連接狀態
netstat -n | awk '/^tcp/ {++b[$NF]} END {for(a in b) print a, b[a]}'
3、用tcpdump嗅探80端口的訪問看看誰最高
tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr |head -10
4、查看當前系統每個IP的連接數
netstat -n | awk '/^tcp/ {print $5}'| awk -F: '{print $1}' | sort | uniq -c | sort -rn
5、shell下32位隨機密碼生成并且保存到/mima.txt文件里
cat /dev/urandom|head -1|md5sum|head -c 32 >/mima.txt
【評析】/dev/urandom這個文件可以嘗試cat一下,里面的東西我是看不懂,即使后面加上head -1我依舊看不懂,但是加上md5sum我就能看懂了。其實第一個head后面-1也行,-2也行,-100也行,只要別是太大的數字都可以。head -c 32的意思就是從頭到第32個字節,如果是head -c 100就是從頭到第100個字節,也是“100位密碼”的意思
/dev/urandom這個東西要比/dev/random好用,因為后者會有堵塞的問題,前者一樣安全而且速度還很快。
6、統計出apache的access.log中訪問量最多的5個IP
cat access_log | awk ?'{print $1}' | sort | uniq -c | sort -n -r | head -5
7、CentOS查看/監測網卡流量的命令
watch more /proc/net/dev
【評析】現在有的面試官自覺不自覺的就把“網絡工程師”的任務跟“運維工程師”的任務混為一談,如果面試官順便問cisco機器如何監察網絡流量,步驟如下:
執行命令:configure terminal 回車進入全局配置模式;
執行命令:interface fastEthernet 0/1 回車進入端口0/1;
執行命令:ip accounting 回車;
exit:退出全局配置模式;
執行:show ip accouting , 回車就可以查看了。
8、ps aux 中的VSZ代表什么意思?RSS代表什么意思?
VSZ:虛擬內存集,進程所占用的虛擬內存的大小
RSS:實際內存集,進程所占用的實際內存的大小
9、符號鏈接與硬鏈接的區別
硬鏈接是復制,享用同一個inode,不能跨分區,不能連目錄,a變b也變,但是a刪b不刪。
符號鏈接就是-s,不享用同一個inode,可以跨分區可以連目錄,等于“快捷方式”。
10、保存當前磁盤分區的分區表
11、如何在文本里面進行復制、粘貼,刪除行,刪除全部,按行查找和按字母查找。
在vim的命令狀態下,先用:set nu顯示每一行對應的行號,然后使用"5G"這種格式對應到第五行,若要刪除該行就是dd;如果復制4行,那就是“4yy”,然后再需要復制的地方按p。如果需要在1~20行里把“AAA”替換成“BBB”那么命令就是:/1,20s/AAA/BBB/gc
【評析】如果遇到的是比較有板有眼的塊型文檔,可以使用awk命令直接切塊,也可以在vim狀態下使用ctrl+v切塊,然后y一下確定所切塊的范圍,最后在需要粘貼的地方p一下。
12、手動安裝grub
grub-install /dev/sda/
13、檢測并修復/dev/hda5
e2fsck -p /dev/hda5
【評析】如果要求是“檢查 /dev/hda5 是否正常,如果有異常便自動修復,并且設定若有問答,均回答[是] ”,那么語句就是e2fsck -a -y /dev/hda5
14、在1-39內取隨機數
echo $[$RANDOM%39]
【評析】echo $RANDOM就是隨機在0~32767出數。這個知識點和上面那個隨機出32位密碼的還是蠻常考的。
15、限制apache每秒新建連接數為1,峰值為3
iptables -A INPUT -d 172.16.100.1 -p tcp --dport 80 -m limit --limit 1/second ?-j ACCEPT
16、FTP的主動模式和被動模式
主動模式:客戶機向服務器的21端口主動發送請求,賬戶密碼驗證成功之后,客戶機打開一個隨機端口(應該是大于1024的口)然后用port命令通知服務器端,“我已經擺好姿勢,一個大于1024的口在等待你”,然后服務器端的20口跟客戶端的口建立連接,開始數據的傳輸。在主動模式里,是服務器端主動把數據給客戶端。
被動模式:客戶機向服務器的21端口主動發送請求,賬戶密碼驗證成功之后,服務器端開啟一個隨機端口,然后用pasv命令告訴給客戶端,“我已經擺好姿勢,一個隨機口在等待你”,然后服務器端也開啟一個隨機的端口,然后兩個隨機的端口連接起來用來互通數據。在被動模式里,是客戶端把數據從服務器端拉取到自己的電腦內。
【評析】無論是主動模式還是被動模式都是針對服務器而言的,畫個圖來解釋一下主動模式:
被動模式的圖如下:
補充一下,如果服務器端的iptables只開啟了20端口和21端口,其他的全部都reject的話,是無法啟動被動模式的,因為沒有一個隨機端口去用來發送數據,而且被動模式能用就用,主動模式能不用就不用。
17、顯示/etc/inittab中以#開頭,且后面跟了一個或者多個空白字符,而后又跟了任意非空白字符的行
grep '^# \{1,\}[^ ]' /etc/inittab?
18、顯示/etc/inittab中包含了:一個數字:(即兩個冒號中間一個數字)的行
grep '\:[1-9]\{1\}\:' /etc/inittab
19、統計/data/mysql目錄里的普通文件個數
find /data/mysql/ -type f|wc -l
【評析】是-type f不是type -f,這個細節上別犯錯。
20、用33m的顏色打出“天下英雄唯使君與操耳”這句話。
echo -e "\E[1;33m 天下英雄唯使君與操耳 \E[1;31m"
或者 echo -e "\E[1;33m" "天下英雄唯使君與操耳" $(tput sgr0)
21、怎么把腳本添加到系統服務里,即用service來調用
22、寫一個腳本,實現批量添加20個用戶,用戶名為user1-20,密碼為user后面跟5個隨機字符
Shell #!/bin/bash #description:?useradd for?i?in?`seq?-f"%02g"?1?20`;douseradd?user$iecho?"user$i-`echo?$RANDOM|md5sum|cut?-c?1-5`"|passwd?–stdinuser$i?>/dev/null?2>&1 done23、寫一個腳本,實現判斷192.168.1.0/24網絡里,當前在線的IP有哪些
#!/bin/bash for?ip?in?`seq?1?255`do{ping?-c?1?192.168.1.$ip?>?/dev/null?2>&1if?[?$??-eq?0?];?thenecho?192.168.1.$ip?UPelseecho?192.168.1.$ip?DOWNfi}&????????????????????#多進程啟動 done24、寫一個腳本,判斷一個指定的腳本是否是語法錯誤;如果有錯誤,則提醒用戶鍵入Q或者q無視錯誤并退出其它任何鍵可以通過vim打開這個指定的腳本
#!/bin/bash read?-p?"please?input?check?script->"?file if?[?-f?$file?];?thensh?-n?$file?>?/dev/null?2>&1 if?[?$??-ne?0?];?thenread?-p?“You?input?$file?syntax?error,[Type?q?to?exit?or?Type?vim?toedit]”?answercase?$answer?inq?|?Q)exit?0;;*)vim?$file;;esac25、數據中有10000個數,其中某個數重復率達到50%以上,求快速找出這數的方法的思路
10000個數分成兩兩一組,然后比較不相同去掉,相同的留下,如果一次不能得到結果,再做一次,最終會得到結果。
【評析】上面這個方法好像很屌,但是說實話,在python里是沒有最屌只有更屌!這種找出現次數最多的元素有一個模塊可以直接抓取,不用這么費勁。
假設aaa就是這個多達10000個數的list。(如果數據不是list就轉成list。)
>>>?from?collections?import?Counter >>>?word_counts=Counter(aaa) >>>?top_one=word_counts.most_common(1) >>>?print(top_one)=================================分割線============================================
這套題很經典,一些比較牛掰的公司拿來做筆試題是很夠格的,問的東西很常用而且還需要一點繞彎彎。但是這套題最好是理解而不是100%的死記硬背,因為這套題實在是臭了大街了,幾乎每個論壇都有。面試官應該不會再原模原樣的拿出來考人。
幾個腳本的編寫也很經典,但是筆試的時候應該考的可能性不大,因為寫出來太費時間,即使寫出來了面試官也不能一下子就看出來個準確,主要是給大家練手。
轉載于:https://blog.51cto.com/chenx1242/1742303
總結
以上是生活随笔為你收集整理的Linux运维工程师面试题第三套的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《从零开始系列-Project 2010
- 下一篇: [转]run for a girl