1. 程式人生 > >linux面試題目(三)

linux面試題目(三)

1 伺服器的linux系統是什麼版 ?

答:CentOS 6.6,RHEL 6.4。 用cat /etc/rehat-release或者uname -a或者lsb_release -a再或者cat /etc/issue

2 linux你做過那些優化?

答:(1)sysctl -w優化核心引數比如TCP連線超時net.ipv4.tcp_fin_timeout=30

(2)伺服器硬體本身的優化,使用固態硬碟或者RAID陣列提高磁碟尋道能力,

(3)使用最小化安裝或者原始碼包編譯安裝,寫一鍵安裝指令碼

(4)對某個具體服務的配置檔案的引數優化,比如my.cnf的socket=/tmp/MySQL.sock,buffer_size,wait_timeout

(5)做負載均衡和keepalived主備切換

(6)禁用開機不必要的服務

3 在linux上部署過那些服務 

答:很多。kickstart、rsync+inotify、NFS、LAMP、LNMP、FTP、DNS、Samba、DHCP、Nagios、Cacti,等等

4 你怎樣用nagios做的監控,監控什麼?

答:首先使用yum源安裝nagios所需的元件如apache、gcc、glibc、gd庫等,在服務端原始碼包安裝nagios主程式,groupadd nagios,useradd -g nagios nagios, /configrure --prefix=/usr/local/nagios,然後make all,make install,make install-init,make install-config ,make install-webconf,。主程式安裝完畢後,安裝外掛。然後身份驗證htpasswd -c /usr/local/nagios/etc/htpasswd.user      admin。nagios實現監控的方式有SNMP、NSClient++、NRPE,重啟apache和nagios服務後。在瀏覽器登入http://IP地址/nagios,  監控的東西有主機的存活狀態、CPU的使用率、負載、磁碟IO量、swap進出量、

mysql主從複製狀態、LVS的VIP以及網路流量狀況

*5 用cacti怎樣對網路進行監控?以前公司的情況(問具體的數字)? 

答:需要安裝工具rrd-tool儲存資料通過web介面以圖表形式返回給使用者,它主要通過SNMP採集資料來監控流量。

6 你怎樣檢視日誌?查什麼內容?

答:(1)檢視服務的訪問日誌,用awk統計訪問IP地址的次數,檢測是否有惡意訪問

(2)當服務不能正常執行,首先先檢視服務的錯誤日誌error_log,然後檢視系統所有日誌資訊/var/log/messages,最後檢視/etc/syslogd.conf系統日誌的配置檔案。

(3)還能檢視/var/log/wtmp記錄登入者的資訊, 以及lastlog檔案記錄登入者的時間資訊和終端

*7 安裝PHP之後,你做了那些優化?

答: (1)php 指令碼如果不做緩衝,每次呼叫都需要編譯,因此,安裝一個 PHP 緩衝產品能提升 25-100% 的效能。

(2)編譯 PHP 時,建議採用如下的引數: --enable-inline-optimization  --disable-debug

(3)把基於檔案的會話切換到基於共享記憶體的會話。編譯 PHP 時採用 --with-mm 選項,在 php.ini 中設定 set session.save_handler=mm 。這個簡單的修改能讓會話管理時間縮短一半。

8 會用shell嗎?都用shell做什麼? (這個問題問的概率很大)

答:答:批量幹什麼事情、備份什麼東西、監控什麼什麼。

(1)監控磁碟分割槽、CPU、記憶體使用率達到什麼程度後就郵件報警mail -s 

(2)用wget、curl判斷服務狀態是否OK,判斷程序、埠是否存在

9 你對apache做了那些優化? (LAMP的優化是重點)

答:(1)在httpd.conf 設定HostnameLookups off

(2)修改 httpd.conf 中的 SendBufferSize 為最大的頁面檔案的大小。加大核心的 TCP/IP 寫緩衝大小。

(3)動態頁面轉靜態頁面

(4)使用CDN內容分發網路,提高站點訪問效率

(5)擴充硬體,使用nginx+apache的負載均衡方式。

10 mysql你都修改了那些配置檔案來進行優化(問配置檔案中具體修改的內容)?  

答:vi /etc/my.cnf,引數有skip-external-locking,key_buffer_size=384M,max_connetions=768,table_cache=1024,wait_timeout=10等等

11 用到的什麼架構?用什麼語言寫的,(jsp?asp?php?)畫一下架構圖並簡要介紹一下你們公司的架構。

答:2臺LVS+keepalived————>4臺nginx————>一大堆應用伺服器(httpd、DNS、email等)————>MySQL主從

12 檢視正在執行的埠用什麼命令?

答:netstat -tulpn 

13 用正則表示式做域名排序:n個http://www.sina.com/mail 讓把www.sina.com提出來倒著排序, 

答:awk -F "/" '{print $3}'|sort |uniq -c |sort -nr

14 監控會麼?你們公司對幾臺伺服器做了監控,監控了哪些服務?如果給你50臺伺服器,讓你監控所有伺服器的80埠具體怎麼做 

答:nagios、zabbix,服務端安裝完畢後,加入客戶端響應的配置資訊檔案

15 rsync遠端連線的時候受控端的驗證怎麼做?

答:客戶端也要裝rsync,在rsync.passwd中寫入密碼,跟服務端的一樣,在/usr/local/rsync/建立rsync.conf檔案

16 shell指令碼會麼?會哪些程式語言?你要說你會shell指令碼,問你寫過什麼指令碼? 

答:...

17 raid0 raid1 raid5工作原理有什麼區別?你們用的哪種? 

答:raid0:將全部資料分散在所有磁碟上,利用率為100%,沒有容錯能力,最少需要2塊磁碟;

raid1 :利用映象功能,每份資料都複製一份在磁碟上,最少需要2塊磁碟,利用率為50%,讀效能優異,具有冗餘能力,但是成本太高

raid5:最少需要3塊磁碟,其中2塊存放資料,第3塊存放奇偶校驗碼,當其中一塊磁碟上資料丟失後,能夠通過校驗碼來恢復資料,所有具有良好的容錯能力

18、lvs有哪三種?你們用的哪種?這種叢集有什麼優勢?也就是和其他兩種的對比分析下差異。apache熟悉麼?模組知道什麼如何優化?nginx怎麼把來自80埠的請求交給8080?

答:(1)NAT:當排程器收到一個數據包,其中源IP地址是客戶端IP地址,目的IP地址是VIP,經過排程器就把目的IP地址替換成真實伺服器的IP地址,根據某種排程演算法,把請求交給後端的某臺伺服器,伺服器處理後,進行應帶資料包,該資料包的格式為源IP地址是RIP,目的IP是排程器出介面的IP,再次返回到排程器的時候,根據快取的對映關係,將目的IP替換為客戶端的IP。那麼這種優勢在於,既支援linux作業系統又支援windows作業系統,缺點是,排程器容易成為瓶頸。

(2)DR:稱為直接路由模式,要求排程器和後端伺服器共享VIP,當排程器收到請求資料包的時候,發出ARP請求,替換目的MAC地址交給後端的伺服器處理,處理完畢,直接返回給客戶端,而不經過排程器,那麼從而較少了系統開銷,排程器能處理更多的併發請求。

(3)隧道模式:將私有IP地址進行封裝,外部是公有IP,要求後端伺服器支援隧道協議,而且也是不經過排程器。

apache模組優化:註釋掉一些不需要用的模組

埠轉換:echo 1 >/proc/sys/net/ipv4/ip_forward  ,iptables -t nat -A PREROUTING -s [源IP] -p tcp --dport 80 -j REDIRECT --to-port 8080 

19 memcache工作的時候用到過麼?什麼命令清理快取?

答:flush_all,作用大概是第一次從硬碟中讀取資料,最後將結果放入記憶體中,下次訪問網站的時候,效率就很高,很多公司都這樣幹

20 iptables幾個表  

答:四表五鏈,表:netfilter nat mangle raw 鏈:PREROUTING INPUT FORWARD OUTPUT POSTROUTING

21 iptables熟練麼?簡單的規則懂麼?有幾個表幾個鏈?

答:規則舉例:iptables -t nat -L ,iptables -F ,iptable -D INPUT 1,iptables -p INPUT DROP //如果沒有明確說明,預設拒絕INPUT鏈上的規則

22 SecureCRT如何操作時防斷線

答:斷線的原因有:(1)觸碰了網線(2)物理主機關機或者休眠(3)網路擁塞導致斷線(4)誤操作reboot或者service network stop(5)iptables幹掉了SSH會話

23 apache怎麼調優?

答:(1)動態頁面轉靜態頁面

(2)httpd.conf中HostnameLookups off

(3)httpd.conf中SendBufferSize的大小為最大頁面大小,加大TCP/IP核心寫快取大小

(4)使用CDN內容分發網路,提供站點的訪問效率

(5)擴充硬體,使用nginx+apache負載均衡方式

24 用過什麼監控工具? 

答:glances/cacti/nagios/zabbix

25 nagios怎麼同時監控80臺伺服器的狀態?

答:每臺伺服器安裝nagios客戶端,nagios-plugin和nrpe,Nagios服務端寫入配置檔案。

26 你們公司的架構是什麼樣的?怎麼做的cdn

答:CDN(內容分發網路)是個邊緣網路,距離使用者最近部署站點,從而提高網站的訪問效率。知道的就這麼多,反正這是個大工程。

27 對日誌都做過哪些操作?用什麼做的? 

答:排錯啊,重要日誌有/var/log/message,以及/var/log/lastlogs,配置檔案/etc/syslogd.conf,還有很多訪問日誌和服務日誌用於統計和排錯使用

28 做過哪些調優?

答:調優不好辦,慢慢研究  

29 會用哪些程式語言,寫過什麼shell指令碼? 

答:略

30 memcache怎麼清理快取 

答:telnet localhost 11211 然後flush_all  

31 linux基本服務的配置都會吧? 

答:不要文件還真不行

32 linux apache mysql調優 

答:重難點,好說不好做。

33 畫出自己公司的架構圖

答:略 

34 apache的MPM  

答:都說爛了。

35 給出一套網遊架構 分析優缺點(從架構設計、維護成本、資料與備份) 

答:C/S架構

36 exchange都做過什麼? 

答:這是聽說微軟開發的郵件伺服器,沒時間學

37 lvs 的模式和演算法 ? 

答:模式:DR、NAT、tunnel         演算法:有11種之多,常見4種,輪詢、加權輪詢、最少連線、加權最少連線(將請求交給已經建立連線數較少的伺服器上)

38 postfix工作原理  

答:不瞭解。流程:接收郵件、將郵件排入佇列、遞送郵件

39 你對lvs 掌握到什麼程度? 

答:3大模式原理理解,四種排程演算法瞭解,配置不夠熟悉。

40 iptable會嗎?都做過什麼? 

答:(1)第一次部署虛擬機器web伺服器,需要開放80埠,iptable -t filter -A INPUT -p tcp --dport 80 -j ACCEPT,然後儲存

(2)squid部署透明代理的時候需要設定:iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3218

 iptables -t nat -A POSTROUTING -o eth1 -p tcp -j MASQUERADE

41 你說一下linux 的啟動流程 (50%概率要考,再複習一遍)

答:(1)BIOS加電自檢,決定從網路、硬碟或者USB、光碟等方式啟動

(2)讀取MBR,載入bootloader,出現grub選單,載入核心

(3)啟動第一個程序即init程序,讀取/etc/inittab,決定從哪個執行級別啟動

(4)偵測硬體,載入驅動程式,執行/etc/rc.sysint系統初始化,比如網路、時區等

(5)執行一些某個級別下開機自啟服務,啟動核心模組

(6)讀取/etc/rc.local,執行開機執行指令碼

(7)miggety程式執行/bin/login,出現使用者登入介面,經過身份認證後,使用者方可使用作業系統

42 nagios報警值 (這個問題,我真的被問過,估計還要問監控啥東西)  

答:(1)、返回的狀態值為0,表示OK,沒有異常。

(2)、返回的狀態值為1,表示WARNING,會觸發WARNING報警。

(3)、返回的狀態值為2,表示CRITICAL,會觸發CRITICAL報警。

(4)、返回狀態為3,表示UNKNOWN。

43 你平時都幹什麼?  

答:10小時分段學習,8—9小時睡眠,剩下的時間玩手機、吃飯、瞎逛思考人生(誰叫我單身狗呢,嚶嚶嚶!)。

44 前臺和後臺的程序怎麼殺掉?

答:前臺程序:立即終止ctrl+C,kill -9 【程序PID】或者pkill -9 【程序名】

後臺程序:用jobs -l檢視有哪些後臺程序?會有PID顯示,然後再用kill -9 PID

##前臺轉後臺,按下ctrl+Z,輸入bg,輸入disown,最後exit           後臺轉前臺:fg %工作號  ,其中工作號可以用jobs -l檢視,工作號不是PID 

45 伺服器宕機瞭如何處理?(重要,也不好回答)

答:原因:由於使用者訪問量過大,造成資源耗盡,或者你網站的資料超出你的空間限制範圍大小也會出現宕機,最後就是遭遇攻擊。

辦法:(1)重啟,如果reboot不靈的話,若是在機房,一般只能按機箱上的reset健來重啟,如果遠端登入,echo 1 > /proc/sys/kernel/sysrq    echo b > /proc/sysrq-trigger

(2)先用其他伺服器承擔一段時間業務,然後對故障機是該更換硬體了

(3)另外這種情況,本來就不好解決,立即通知最有豐富經驗的人來解決,以免自己耽擱時間。

46 你對小型機瞭解嗎 

答:過時了

47 遇到故障如何排除?舉一個例子; (呵,這玩意80%又要問啊,要熟記)

答:(1)root使用者忘記密碼:進入單使用者模式,passwd rooot更改密碼;

(2)grub檔案損壞,進入linux rescue 模式,chroot sysimage,重新gurbinstall

(3)服務不能正常執行,首先測試故障所處範圍,然後檢視系統日誌,最後檢視服務日誌,逐步排錯

(4)命令丟失:在另一臺主機上,用rpm -qf 找到對應命令安裝包,然後用scp命令遠端拷貝過來,再進行安裝,並移至相應位置

(5)網站響應極慢:檢查是不是客戶端網路擁塞問題,如果不是再定位到服務端,系統負載過大,檢視什麼程序佔用了較大負載,或者說我們服務的配置本身有問題,應對不了大併發連線,建立先要ab或者httperf測試一下併發量,再去琢磨修改,然後PHP響應慢,可能是SQL程式碼查詢效率太低,該刪的要刪,最後是MySQL響應慢問題,可能是磁碟IO效能不好,先換換硬體,比如固態硬碟和RAID陣列,也有可能是配置檔案沒有做好優化措施。

##top命令, 鍵入M可以達到以記憶體佔用率大小順序排列,鍵入P可以達到以CPU使用率順序排序

(3)服務不能夠正常執行,(1)先

48 會不會編寫指令碼

答:略

49 會不會部署squid 

答:看來是重點啊

50 遊戲架構瞭解多少  

答:P2P結構、C/S結構、會話大廳結構  參考文件:http://www.cnblogs.com/kanego/articles/2171009.html

伺服器的執行流程如下:

(1)建立一個套接字,繫結IP和埠。

(2)伺服器監聽埠,等待連線。建立一個遊戲大廳。

(3)伺服器處於等待狀態,因此需要兩個程序/執行緒在伺服器端執行:一個介面執行緒,處理遊戲選單操作;一個網路執行緒,等待連線。

(4)在每個客戶端建立一個Socket,連線遊戲伺服器。

(5)伺服器更新連線資訊,並在遊戲大廳上顯示。同時,將連線使用者資訊傳送給每個連線使用者。

(6)當所有的使用者都連線到伺服器上開始遊戲,關閉伺服器偵聽的套接字,中斷所有等待的連線,新的使用者將不可能連線上伺服器。

51 怎麼樣測試網站最大流量? 

答:使用jmeter工具,得出每條訪問請求數throughoutput,再推算出日均訪問量。

52 會不會安裝系統 

答:會,有時候一臺虛擬機器不能滿足需要測試,需要多裝幾臺,過一段時間,刪除系統,重新裝系統和服務,加強熟悉

53 linux怎麼調優的

答:太多了,四個角度入手。硬體、軟體編譯安裝、服務配置檔案、底層核心引數

54 以前有多少臺伺服器

答:小公司:500臺;中型公司:2000臺 大型公司:1W臺

55 以前公司的pv多少 

答:PV就是page view的意思,頁面訪問量,像阿里這種每天應該千萬級別吧

56 apache mpm 區別 

答:略

57 用過什麼負載均衡  

答:對於伺服器來說,硬體:F5 BIG-IP; 軟體:nginx負載均衡,HAproxy,LVS+Keepalived

58 做負載均衡 真實伺服器ABC 使用者訪問A並且上傳了圖片在A伺服器,下次負載到B,B沒有圖示,使用者怎麼請求圖片 

答:這是一個負載均衡同步問題。還是老樣子,部署rsync+inotify或者在A伺服器部署NFS,進行共享。其實我想B伺服器能不能有一個指向A伺服器資源的連結,但是呢。這樣就沒有負載均衡的效果了,所以我想反向代理行不行,當B找不到對應的資源的時候,就去向A請求。

59 用什麼監控?  

答:Cacti監控流量、Nagios監控服務

60 編寫過指令碼嗎?(一定要說出有點水平的指令碼來,瞎吹也行)

答:(1)nginx日誌切割(2)rsycn的服務端的同步指令碼(3)還有nagios監控指令碼  ;批量幹啥玩意、備份啥玩意、監控啥玩意

61 ospf相比rip的優點 

答:OSPF:(1)收斂速度快(2)適合大中型網路(3)劃分區域提高了它的可管理性(4)優良的防環機制(5)即支援明文認證,有支援密文認證(6)支援等價負載均衡 (我研究的領域側重點已經不是網路了,不然我能說出一大堆來,嘻嘻)

62 程序和執行緒的區別 (最喜歡考這個了)

答:(1)執行緒是CPU排程的基本單位,而程序是CPU分配的基本單位(2)一個程序中含有多個執行緒,執行緒之間共享地址空間,從而提高它的訪問效率,而每個程序獨佔資源(3)相比程序而言,執行緒是一個更切近執行體的概念。(3)執行緒經常用在對稱多處理技術上,執行緒之間通訊快,切換速度也快。

63 squid 配置過嗎? 

答:跟大多數快取原理相同,如果有則...如果沒有....

64 儲存瞭解嗎 ? 

答:SAN和NAS

65 apache 的keepalive是做什的?  

答:保持長連線,避免不斷的建立和終止TCP連線增大系統開銷。

66 lvs有哪些模式?你們原來用什麼模式 

答:略

67 你瞭解dr 原理嗎?  

答:DR稱為直接路由模式。後臺伺服器共享VIP地址,當排程器收到一個請求資料包的時候,根據某種排程演算法,將請求交給後端某臺伺服器來處理,同時更改資料的目的MAC地址,發出ARP請求,但是不作出ARP應答,伺服器處理完請求,封裝應答包的時候,不經過排程器,直接返回給客戶端,從而提高了系統效率,排程器能處理更多的併發連線。

68 兩臺directory資料怎麼共享儲存

答:(1)rsync+inotify實時同步(2)後端連一臺NFS,但是不夠安全(3)

69 說說你在以前公司的主要職責是什麼(這玩意估計經常考) 

答:(1)保證機房物理上的安全,路由器、交換機、伺服器及個人PC正常運作(2)對作業系統防漏洞、防入侵、使用許可權、金鑰管理等(3)對服務的安裝配置、排障、許可權授予以及身份驗證(4)對使用者進行操作培訓教育(5)編寫完善的運營維護技術文件(6)資料備份以及災難恢復等。

70 以前使用過什麼架構 

答:無非就是2臺LVS+keepalived,4臺nginx,一大堆應用伺服器,後臺2臺MySQL主從

71 以前用什麼監控網路流量,網路流量大概是多少。 

答:Cacti監控流量

72 畫一下你們公司的伺服器架構

答:略

73 你們公司運維人員有幾個 

答:一般中型公司,怎麼也得2000+臺伺服器吧,估計至少20人。

74 你們是怎麼做的伺服器的高可用?

答:所謂高可用就是保證伺服器的線上處理能力,一臺掛掉之後,另一臺能夠迅速接替,使用keepalived主備切換。

75 問我做高可用的兩臺伺服器是用什麼線連在一起的。 

答:雙絞線,準確來說交叉線

76 對raid瞭解嗎?  

77 你們用的什麼伺服器 

。。。

78 對nas瞭解嗎? 

答:NAS(Network Attached Storage:網路附屬儲存),它是一種資料儲存伺服器。允許使用者在網路上存取資料,NAS裝置集中管理和處理網路上的所有資料

##SAN 和NAS的區別:

(1)SAN是一種網路,NAS產品是一個專有檔案伺服器或一個只讀檔案訪問裝置。

(2)SAN是在伺服器和儲存器之間用作I/O路徑的專用網路。

(3)SAN包括面向塊(iSCSI)和麵向檔案(NAS)的儲存產品。

(4)NAS產品能通過SAN連線到儲存裝置

79 會原始碼編譯嗎?

答: ./configure檢驗gcc,配置環境   make編譯  make install安裝

80 你覺得你現在的技術在那個層次?核心的編譯,系統引數的調優。 

答:4-5個月linux基礎,我目前所處初級運維工程師到中級運維工程師過渡的階段。

81 伺服器的linux系統是什麼版 

答:用cat /etc/rehat-release或者uname -a 或者cat /etc/issue,用file /bin/ls

82 linux你做過那些優化 

答:一般來說,從三個大方向:硬體、服務編譯安裝、配置檔案入手

83 在linux上部署過那些服務 

答:rsync+inotify、kickstart、LAMP、nginx、FTP、DNS、Samba、DHCP、Nagios、Cacti,等等

84 apache使用的版本 

答:2.2 ,可以用rpm -q httpd 檢視,原始碼包的話使用/usr/local/apache2/bin/apachectl -V 

85 apache使用的工作模式  

答:prefork和worker

86 apache的主配置檔案以及虛擬主機的配置檔案 

答:/etc/httpd/conf/httpd.conf。虛擬主機vi /etc/httpd/conf.d/vhosts.conf

87 埠轉發80 轉到8080

答:iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080    ##其實就可以理解為從80埠接收請求資料包,從8080埠發出應答資料包

88 核心編譯命令?(你編譯過核心嗎,這個問題可能會被問)

答:make menuconfig    ##參考文件:http://blog.csdn.NET/xiaocainiaoshangxiao/article/details/21931801

89 把某資料夾下小於10k的檔案移動到tmp資料夾下

答:find 某資料夾/ -10k -a type f -exec mv {} /tmp \;

90 iptable儲存 恢復 

答:service iptables save,service iptables restart

91 httpd配置檔案位置

答:(1)原始碼包安裝:/usr/local/apache2/conf/httpd.conf   (2)二進位制包安裝:/etc/httpd/conf/httpd.conf  

92 rsync的使用?

答:通常結合inotify監控工具,達到實時同步的效果

93 cp和mv的區別?

答:(1)就檔案來說,cp 在產生新檔案的同時,原檔案不變,而mv會移走原檔案到指定位置(2)就改名來說,mv 直接將該檔案改名,不會產生新的檔案,而cp 使原檔名不變,同時產生新檔案,並改名

94 postfix郵件發不出去的原因?

答:(1)域名解析問題(2)因為閘道器或者其他原因造成的網路不通(3)郵件伺服器不正常 (4)selinux問題

95 郵件發不出去的解決辦法?

答:(1)域名解析問題:/etc/hosts(2)因為閘道器或者其他原因造成的網路不通:路由交換,逐點ping來排錯(3)郵件伺服器不正常:看日誌 (4)selinux問題:禁用,vi /etc/sysconfig/selinux,selinux=disabled

96 smtp的埠

答:25 

97 之前使用的作業系統版本

答:redhat 6.4 ,CentOS 6.6

98 是否會用freebsd?

答:只知道是Unix,操作手段略有不同

99 之前工作中所遇到的重大事故及解決辦法 

答:一般是誤操作把某些資料給刪了,災難恢復很難辦;或者遭遇網路攻擊,手足無措

100 是否會部署快取DNS ?

答:(1)快取伺服器主機安裝yum -y install bind caching-nameserver, cd /etc, cp –p named.caching-nameserver.conf named.conf ##-p保持屬性不變。vi named.conf ,view localhost_resolver {match-clients { any; }; match-destinations { any; };

(2)在主域名伺服器上vi /var/named/test.com.zone ,新增localhost.localdomain. IN A 【快取伺服器的IP地址】

原文連結:http://19951008.blog.51cto.com/11185699/1830715