《19道小米網運維工程師筆試真題,你能通關嗎?》html
題目轉至:馬哥Linux運維python
第一部分:Linux基礎mysql
題目1:nginx
有一百個圖片文件,它們的地址都是正則表達式
http://down.xiaomi.com/img/1.pngsql
http://down.xiaomi.com/img/2.pngshell
…後端
一直到http://down.xiaomi.com/img/100.png瀏覽器
批量下載這100個圖片文件,並找出其中大於500KB的文件。安全
參考答案:
#/bin/bash #by xianwei #2017-9-5 echo "downloading the picture......" for i in {1..100} do wget "http://down.xiaomi.com/img/$i.png" done echo "download done!" echo "find the file which is big than 500k" find . -type f -size +500c -print
題目2:
一個文本文件info.txt的內容以下:
aa,201
zz,502
bb,1
ee,42
每行都是按照逗號分隔,其中第二列都是數字,請對該文件按照第二列數字從大到小排列。
參考答案:
root@vmUbu:/home/dell/shell# cat info.txt aa,201 zz,502 bb,1 ee,42 root@vmUbu:/home/dell/shell# cat info.txt |sort -t "," -rnk 2 zz,502 aa,201 ee,42 bb,1 root@vmUbu:/home/dell/shell#
考察知識點:
sort的使用
-r 逆序
-n 按數字排序
-k 指定列
-t 指定分隔符號
題目3:
查看當前Linux服務器是否監聽80端口,若是在監聽,請找出其進程ID,並結束該進程。
參考答案
說明:測試使用3306段口爲例。
1)查看端口對應的進程ID和進程名,有兩種方法lsof和netstat
netstat -tanp |grep 3306
lsof -i:3306
root@vmUbu:/home/dell/shell# netstat -tanp |grep 3306 tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1309/mysqld root@vmUbu:/home/dell/shell# lsof -i:3306 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 1309 mysql 16u IPv4 19621 0t0 TCP localhost:mysql (LISTEN)
2)過濾出ID號,並kill
方法一:使用for
for i in `netstat -tanp |grep 3306 |awk '{print $NF}' |cut -d "/" -f 1`;do kill -9 $i;done
方法二:使用xargs
netstat -tanp |grep 3306 |awk '{print $NF}' |cut -d "/" -f 1 |xargs -I '{}' kill -9 {}
方法三:使用awk
netstat -tanp |grep 3306 |awk '{print $NF}' |cut -d "/" -f 1 |awk '{print "kill -9 "$0}' |bash
題目4:
使用curl或wget命令獲取http服務的header信息。
題目5:
關於Linux的用戶帳號,下面說法正確的有:
A.用戶的密碼,是以明文形式存儲在 /etc/passwd 文件中的
B.用戶的密碼,是以密文形式存儲在 /etc/passwd 文件中的
C.用戶的密碼,是以密文形式存儲在 /etc/shadow 文件中的
D.用戶登陸的時候,會把用戶的密碼明文與保存的密碼作對比
參考答案:C
題目6:
對於N塊硬盤組成的硬盤陣列,下面的說法哪一個是錯誤的:
A.raid1 與 raid5 相比,讀取數據的速度 raid5 更快
B.raid1 與 raid5 相比,raid5 的磁盤空間利用率更高
C.raid1 在 (N-1)塊磁盤損壞的狀況下,不影響數據的完整性
D.raid0 相比於raid一、raid5,讀寫速度最快
參考答案:
raid0 的讀速度比raid1,raid5要慢一些,由於只從一個盤中讀取數據
題目7:
負載均衡,你瞭解的經常使用軟件有哪些?請寫出至少三種以上,並評價各自的缺點。
參考答案:
Nginx的缺點是:
1. Nginx僅能支持http、https和Email協議,這樣就在適用範圍上面小些,這個是它的缺點。
2. 對後端服務器的健康檢查,只支持經過端口來檢測,不支持經過url來檢測。不支持Session的直接保持,但能經過ip_hash來解決。
LVS的缺點是:
1. 軟件自己不支持正則表達式處理(僅僅支持4層負載均衡),不能作動靜分離;而如今許多網站在這方面都有較強的需求,這個是Nginx/HAProxy+Keepalived的優點所在。
2. 若是是網站應用比較龐大的話,LVS/DR+Keepalived實施起來就比較複雜了,特別後面有 Windows Server的機器的話,若是實施及配置還有維護過程就比較複雜了,相對而言Nginx/HAProxy+Keepalived就簡單多了。
請參考:http://www.ha97.com/5646.html
題目8:
執行 $ time sleep 2,輸出以下:
real 0m2.003s
user 0m0.004s
sys 0m0.000s
請說明 real、user、sys三者具體表明的意思和區別。
參考答案:
real時間是指掛鐘時間,也就是命令開始執行到結束的時間。這個短期包括其餘進程所佔用的時間片,和進程被阻塞時所花費的時間。
user時間是指進程花費在用戶模式中的CPU時間,這是惟一真正用於執行進程所花費的時間,其餘進程和花費阻塞狀態中的時間沒有計算在內。
sys時間是指花費在內核模式中的CPU時間,表明在內核中執系統調用所花費的時間,這也是真正由進程使用的CPU時間。
題目9:
nginx rewrite 規則中 last、break、redirect、permanent 的含義。
題目10:
WEB 服務 cookies 和 session 的區別。
參考答案:
一、cookie數據存放在客戶的瀏覽器上,session數據放在服務器上
二、cookie不是很安全,別人能夠分析存放在本地的COOKIE並進行
三、session會在必定時間內保存在服務器上。當訪問增多,會比較佔用你服務器的性能
四、單個cookie在客戶端的限制是3K,就是說一個站點在客戶端存放的COOKIE不能大於3K。
出處:http://blog.csdn.net/u010168160/article/details/47128443
題目11:
http 1.0 和 http 1.1下有何區別?http 2.0的主要變化或優點有哪些?
參考答案:
http 1.0使用短連接,http1.1使用長鏈接
http2.0 性能和速度有很大提高。
第二部分:安所有分
題目12:
請列舉WEB常見安全問題(很多於三項),闡述其原理、危害。
略
題目13:
請列舉常見DOS***類型,並分別介紹其原理和防護方法。
略
題目14:
服務器遭到***,做爲安全管理人員,你應作如何處理?
參考答案
http://netsecurity.51cto.com/art/201608/515574.htm
第三部分:網絡部分
題目15:
請簡述TCP的三次握手過程。
題目16:
發現系統中存在大量TIME_WAIT,分析緣由並提出三條以上優化建議。
第四部分:Python部分
題目17:
xrange和range的異同。
參考答案:
xrange會比range性能優不少,由於不須要一上來就開闢一塊很大的內存空間。
range會直接生成一個list對象,而xrange則不會直接生成一個list,而是每次調用返回其中的一個值
題目18:
列表 A 和 B,使用Python快速獲取 A 和 B 中的共有元素。
參考答案:
for i in A: if i in B: print i
題目19:
有20臺服務器,須要在全部機器上 echo 「123」,要求同時並行操做5臺服務器,請使用Python或shell寫出相關代碼。
# encoding:utf-8 import time import sys import os import threadpool def cmd(ip): #需先設置遠程無密碼執行命令 os.system(‘ssh ip echo "123" 2>&1’) time.sleep(2) pool = threadpool.ThreadPool(5) #建立一個線程池,包括線程數10個 requests = threadpool.makeRequests(cmd, ip_list) #傳遞函數和參數 [pool.putRequest(req) for req in requests] #將請求放入線程池進行處理 pool.wait()