運維屌絲回答網傳Linux運維面試題(三)

雷傲普文化傳播有限公司運維工程師面試題


後續將整理出豪鷲親身經歷面試過的公司運維技術面的題目(非筆試題目,技術面運維經理的提問),並也附上答案。

敬請期待。。。。。


  1. DNS使用的端口號和協議,簡單描述一下DNS正向解析和反向解析的工作原理和作用還有應用場景?


答:DNS使用的端口號是53,封裝協議udp。正向解析是指域名到IP地址的解析過程。反向解析是從IP地址到域名的解析過程,它的作用就是通過查詢IP地址的PTR記錄來得到該IP地址指向的域名。要成功得到域名就必需要有該IP地址的PTR記錄。PTR記錄是郵件交換記錄的一種,郵件交換記錄中有A記錄和PTR記錄,A記錄解析名字到地址,而PTR記錄解析地址到名字。反向解析主要應用到郵件服務器中來阻攔垃圾郵件,特別是在國外。多數垃圾郵件發送者使用動態分配或者沒有註冊域名的IP地址來發送垃圾郵件,以逃避追蹤,使用了域名反向解析後,就可以大大降低垃圾郵件的數量。




2.編寫IPTABLES使用內網某臺機器的80端口可以在公網訪問,假設公網IP爲10.10.1.1 ,實現192.168.1.0/32段的NAT.       

答:請網友在評論區補充~_~


                               

3.舉出三個以上的主流WEB服務器,並簡述他們的特性和優缺點不限操作系統?


答:主流的web服務器有幾款:apache、nginx、Microsoft IIS、tomcat、lighttpd、WebLogic、Jboss等,其中以apache,nginx和Microsoft IIS的市場佔用率最大。

Apache的特點是簡單、速度快、性能穩定,並可做代理服務器來使用。具體有以下特性:

1、多計算機運行平臺;

2、支持最新的http/1.1協議;

3、易配置(httpd.conf);

4、支持虛擬主機;

5、支持http認證;

6、可作爲代理服務器;

7、提供web界面監控服務器狀態

8、支持ssl數據傳輸;

9、支持fastcgi;

10、具有用戶會話過程的跟蹤能力;


優點:源代碼開放可以運行在unix,windowns,linux平臺上,可移植性、支持的模塊多、穩定性很好、相對於其他web server,apache的bug要少一些,處理動態請求方面比較好;


缺點:性能,速度上不及其他輕量級的web服務器,但是也是重量級產品,所消耗的內存,cpu也比其他的要高。相對於nginx來說,apache佔用的系統資源要多一些,處理靜態請求較nginx要差一些,併發數也較nginx少一些。負載能力較nginx差一些。


nginx具有以下特性:

1、處理靜態文件,索引文件以及自動索引

2、無緩存的反向代理加速,簡單的負載均衡和容錯

3、必須使用FastCGI方式來執行PHP程序,快速響應請求

4、模塊化結構

5、nginx專爲性能優化而開發,支持epoll模型,能經受高負載的考驗,官方表明能支持高達5w的併發連接數

6、nginx具有很高的穩定性,其他web服務器,當遇到訪問的峯值,或者有人惡意發起慢速連接時,也很有可能會導致服務器物理內存耗盡,頻繁交換而失去響應,只能重啓服務器。例如當前apache一旦上到200個進程以上,web響應速度就明顯非常緩慢了,而nginx採取了分階段資源分配技術,使得它的CPU與內存佔用率非常低。nginx官方表示保持1w個沒有活動的瞭解,nginx只佔用2.5M內存,所以類似DOS這樣的***對nginx來說基本上是毫無用處的。

7、支持熱部署。nginx啓動特別容易,並且幾乎可以做到7*24不間斷運行,即使運行數個月也不需要重新啓動,還能夠在不間斷服務的情況下,對軟件版本進行升級或重載配置文件的信息。


優點:源代碼開放發高性能的http和反向代理服務器,在高併發的情況下,nginx是apache不錯的替代品,他能夠支持高達50000個併發連接響應,內存,cpu等系統資源消耗也是很低的。


缺點:支持模塊比較少,併發性比較好,較apache穩定性差一些,處理動態請求是軟肋。


IIS具體有以下特性:IIS是一種Web服務組件,其中包括Web服務器、FTP服務器、NNTP服務器和SMTP服務器,分別用於網頁瀏覽、文件傳輸、新聞服務和郵件發送等方面,它使得在網絡(包括互聯網和局域網)上發佈信息成了一件很容易的事。它提供ISAPI(Intranet Server API)作爲擴展Web服務器功能的編程接口;同時,它還提供一個Internet數據庫連接器,可以實現對數據庫的查詢和更新。IIS提供了一個圖形界面的管理工具,稱爲 Internet服務管理器,可用於監視配置和控制Internet服務。


優點:Microsoft IIS 配置很簡單,自IIS 6.0版本之後,其在安全性,可靠性、可擴展性方面有了很大的提升。


缺點:不開放源代碼,只能運行在windows系統上,bug一般較多等。




4,舉出兩個主流代理服務器,簡述工作模式和優缺點?

答:後續補充。。。網友也可以在評論區補充~_~




5,舉出兩個負載均衡的軟件,並簡述工作模式和優缺點?

答:linux下的負載均衡軟件有很多,這裏簡單介紹幾個:lvs、nginx、HAProxy




6,IE,FF,chrome瀏覽器最大併發請求數是多少?


答:豪鷲先說明一下什麼是瀏覽器的併發請求數:通俗地講,就是當瀏覽網頁的時候同時工作的數量。

如果同時只有2個併發連接的數量,那網頁打開的時候只能依賴於這2條線程,前面如果有打開慢的內容,就會直接影響到後面的內容打開,但是如果同時又更多的併發連接數,這樣就會大大的提高網頁加載速度。當然,瀏覽器的併發連接數也並非越大越好。

結合網上資料,IE,FF,chrome瀏覽器三者的最大併發請求數都是6個。




7,簡單舉例一下linux和windows系統今年都有哪些漏洞?


答:豪鷲收集了2015年針對linux系統的以下幾個漏洞,僅供參考,關於更多linux和window的漏洞信息,歡迎各位補充

2015.1烏雲網站公佈了linux glibc幽靈漏洞:***者可以通過利用此漏洞遠程獲取操作系統的最高控制權限

2015.3烏雲網站公佈了linux kernel KVM本地權限提升漏洞:Linux kernel 3.18.5之前版本,在客戶端OS缺乏SYSENTER MSR初始化時,arch/x86/kvm/emulate.c的em_sysenter函數存在安全漏洞,通過觸發使用16位代碼段,以模擬SYSENTER指令,客戶端OS用戶利用此漏洞可獲取OS權限或造成OS崩潰,導致拒絕服務。

2015.7烏雲公佈了linux kernel本地拒絕服務漏洞:***者可利用此漏洞執行拒絕服務***




8,mysql數據庫備份種類有哪些,依據數據庫的狀態可分爲哪些備份,備份工具有哪些,部署一個高可用mysql應用 環境,並說明他的高可用性?


答:mysql數據庫備份種類:完全備份、差異備份、增量備份、物理備份(文件備份)

依據mysql的狀態可分爲:冷備份、熱備份、溫備份

mysql備份工具:mysqldump、mysqlhotcopy 、kvm快照備份、tar工具備份、xtrabackup工具備份(只支持InnoDB存儲引擎)等


豪鷲這裏提供幾個mysql的高可用方案,各有用途,僅供參考:


A.普通的主從複製————客戶端通過master對數據庫進行讀/寫操作,Slave端作爲備機,可用來進行一些查詢,備份等操作。

優點:部署簡單,易於擴展,能提供一定的數據保護。

缺點:如果master主機硬件故障且無法恢復,則可能造成部分未傳送到Slave端的數據丟失;如果master端需要進行某些維護操作,將slave臨時作爲master提供服務之後,又需要重新搭建主從環境,會對master造成一定的性能影響。


B.雙主複製————兩個 mysql server互相將對方作爲自己的master,自己作爲對方的Slave來進行復制,一端提供寫服務,另一端讀服務或者僅僅作爲備機不用提供任何服務,而且其還能夠跟一個或者多個Slave專門提供讀服務。

優點:最大的好處就是既可以避免主Master的寫入操作不會受到Slave集羣的複製所帶來的影響,同時主Master需要切換的時候也基本上不會出現重搭Replication的情況。

缺點:這個架構也有一個弊端,那就是備用的Master有可能成爲瓶頸,因爲如果後面的Slave集羣比較大的話,備用Master可能會因爲過多的SlaveIO線程請求而成爲瓶頸。


C.主從複製擴展:讀寫分離————由一個master複製到一個或者多個Slave的架構模式,客戶端通過master對數據庫進行寫操作,通過Slave端進行讀操作,並可進行備份,master出現問題後,可以後動將應用切換到Slave端。該方案主要用於讀壓力比較大的應用系統中。

優點:結構靈活,數據庫端廉價擴展,能夠解決很多中小型網站的數據庫壓力瓶頸問題。

缺點:需要程序來實現讀寫分離,增加了程序的複雜度,如果服務器架構調整或者有主機發生故障,還需要調整程序。


D.HearBeat+雙主複製————hearbeat最核心包括的兩個部分是心跳監測和資源接管。使用hearbeat+mysql主主同步來實現mysql數據庫的 高可用,當master的主機或hearbeat宕機以後會自動切換到備用機上,當恢復以後可以自動切換回來,master繼續提供服務。

優點:配置簡單,能在一定的程度上避免單點故障。

缺點:如果master上的mysql掛掉,則無法檢測到並進行切換,需要一些腳本來協助監控。默認切換到備用機後,不會自動啓動mysql,需要手動或者腳本啓動,不方便擴展,可能會出現腦裂的問題。


E.Hearbeat+DRBD+Mysql————本方案採用Hearbeat雙機熱備軟件來保證數據庫的高穩定性和連續性,數據的一致性有DRBD這個工具來保證。默認情況下只有一臺mysql在工作,當主mysql服務器出現問題後,系統將自動切換到備機上繼續提供服務,當主數據庫修復完畢,又將服務切回繼續由主mysql提供服務。

適用場景:適用於數據庫訪問量不太大,短期內訪問量增長不會太快,對數據庫可用性要求非常高的場景。

優點:安全性高,穩定性高,可用性高,出現故障自動切換。

缺點:只有一臺服務器提供服務,成本相對較高,不方便擴展,可能會出現數據庫腦裂。


F.LVS+Keepalive+雙主複製————lvs提供負載均衡,keepalive作爲故障轉移。服務器單點寫入,讀實現負載很橫和故障切換。當網絡、mysql服務、服務器、keepalive服務出現故障後,服務器能自動跳轉到備用機,當主服務器服務啓動起來後會自動切換回來。

適用場景:適用於對數據庫可用性要求比較高,讀壓力比較大的場景(後端可跟一個或多個Slave服務器,讓lvs實現讀的負載均衡)。這個方案也能夠很方便地進行單臺數據庫的管理維護以及切換工作,比如進行大表的表結構更改,數據庫的升級等。

優點:高可用效率好,可以根據服務與系統的可用性多方面進行切換。可以將寫vip和讀vip分別進行設置,爲讀寫分離做準備。擴展很方便。可以在後面添加多個從服務器,並做到讀的負載均衡。

缺點:在啓動或者恢復後如果要實現指定條件替換或者不替換需要通過其他方式實現,比如:臨時更改mysql的端口等。安裝配置比單寫入稍微複雜,需要另外一個vip。管理比單寫入複雜。主切換後,從需要手工切換。主備切換需要1s左右的時間。


G.MMM+mysqlproxy+雙主複製————MMM(mysql主主複製管理器)是一套靈活的腳本程序,用來對mysql replication進行監控和故障遷移?並能管理mysql Master-Master複製的配置 。附帶的工具套件可以實現多個slaves的read負載均衡.兩個mysql server服務器互爲主從,MMM提供浮動IP的功能,如果當前的主服務器掛掉後,客戶端的讀寫請求會通過漂移的虛擬IP自動轉移到另一臺服務器上,從而自動實現服務器的故障轉移,mysqlproxy實現了讀寫分離。

適用場景:這個方案是目前比較成熟的解決方案,適用於數據庫訪問量大,業務增長快的場景。適用於讀/寫比較高的web2.0應用中。

優點:安全性、穩定性高,可擴展性好,高可用好,當主服務器掛掉以後,另一個主立即接管,其他的從服務器能自動切換,不用人工干預。

缺點:至少三個節點,對主機的數量有要求,對於實時性很高的場合可能需要做一些處理。

mysqlprox與mysql MMM集成的必要性:實現mysql數據庫層的負載均衡;數據庫節點實現HA動態切換;讀寫分離,降低主數據庫負載





9,什麼是裸設備,他的好處是什麼?,mysql支持裸設備嗎?


答:裸設備,也叫裸分區(原始分區),是一種沒有經過格式化,不被Unix通過文件系統來讀取的特殊字符設備。它由應用程序負責對它進行讀寫操作。不經過文件系統的緩衝。

辨別:在/dev 目錄下,裸設備使用字符特殊文件。

好處:因爲使用裸設備避免了再經過Unix操作系統這一層,數據直接從Disk到Oracle進行傳輸,所以使用裸設備對於讀寫頻繁的數據庫應用來說,可以極大地提高數據庫系統的性能。當然,這是以磁盤的 I/O 非常大,磁盤I/O已經稱爲系統瓶頸的情況下才成立。如果磁盤讀寫確實非常頻繁,以至於磁盤讀寫成爲系統瓶頸的情況成立,那麼採用裸設備確實可以大大提高性能,最大甚至可以提高至40%,非常明顯。 

mysql支持裸設備。




10,如果給你一個100g的INNODB類型數據庫,你會用什麼備份方案來做備份。


答:豪鷲以前備份還原過一個82G左右的數據庫,使用mysqldump命令導出,然後再使用mysql命令導進去,mysqldump命令導出整個數據庫的數據大概需要20~30分鐘,再通過mysql導入到新庫,需要兩天一夜,效率確實太低了。

這裏推薦給大家一個mysql的備份工具:Xtrabackup,它有兩個主要的工具:xtrabackup、innobackupex。xtrabackup只能備份InnoDB和XtraDB兩種數據表,而不能備份MyISAM數據表。innobackupex是一個perl腳本封裝,封裝了xtrabackup。主要是爲了方便的 同時備份InnoDB和MyISAM引擎的表,但在處理myisam時需要加一個讀鎖。



11,寫一個簡單的shell腳本,腳本運行時讓CTRL+C無法中斷的該shell腳本?


答:這裏先做一個簡單的介紹,在shell腳本中用trap命令捕獲SIGINT信號就可以做到忽略系統傳輸的中斷信號,比如,ctrl+c產生的中斷信號。

系統給出的SIGINT信號數字爲2或者直接寫信號名稱也可以

豪鷲這裏給出一個簡單的例子吧,腳本如下:

[root@haojiu ~]# cat vmstat.sh 


#!/bin/bash

#script usinf for ignore system sigint.

#create by haojiu.

#date 2015-x-x

#在循環執行命令前面使用trap "" 2或者trap "" SIGINT,兩者任選其一


#trap "" 2

trap "" SIGINT

vmstat 2 10


通常情況下,如果沒有加入trap "" 2或者trap "" SIGINT這條命令時,直接執行vmstat 2 10,在腳本的執行過程中,是可以通過按住CTRL+C來中斷腳本的運行的,但如果加入trap命令之後,腳本在執行過程中會忽略收到的信號SIGINT,而不做任何處理。




13、具體說說cacti/nagios 的安裝過程?cacti如何監控mysql?


答:豪鷲簡單說下兩者的安裝過程吧,近兩年還有比較熱門的zabbix,這個我沒用過,所以不好在這裏吹。下面簡單列出cacti和nagios的安裝步驟吧;


cacti安裝步驟:首先安裝好lamp環境(建議都使用編譯安裝)和snmp服務,rrdtool工具安裝,然後建立cacti庫和登錄mysql賬號,並賦權;其次下載並解壓cacti到web server的htdocs或html目錄下,確保敲入http://IP:port/cacti能被訪問到,進而在web上安裝cacti,修改web頁面上的snmp團體字,確保跟snmpd.conf的團體字一致,然後再手動執行php poller.php看看能否在rra目錄下生成.rrd文件,默認只監控本機資源,將php.poller.php命令寫入到crontab中,每5分鐘執行一次,如果需要監控遠程主機,需要在對方主機安裝snmp服務,並且保證snmp的團體字與監控主機上的snmp團體字是一致的;最後,添加其他監控主機,添加模板,安裝插件等一系列工作。


nagios安裝步驟:首先同樣安裝好lamp環境(建議使用編譯安裝),然後下載並安裝nagios和nagios-plugin,整合apache和naigos,並創建web登錄賬號驗證,確保敲入http://IP:port/nagios能正常訪問並登錄,遠程主機安裝nrpe或NClient++;最後添加配置遠程主機信息,報警功能實現,添加所需的監控指標等工作。

cacti監控mysql:首先到cacti的論壇上下載cacti監控mysql的模板,然後導入到cacti中,然後添加主機,選擇應用模板,最後等待5分鐘,看看是否監控正常。




14、sed和awk命令的區別?

答:

A.sed是行編輯器,awk是列編輯器;

B.awk適合對文件的截取整理,sed適合對文件的編輯;

C.如果文件內容是具有固定格式的,即由分隔符分爲多個(列)域的,比較適合使用awk;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章