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

 

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


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

敬請期待。。。。。mysql


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


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




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

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


                               

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


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

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

一、多計算機運行平臺;

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

三、易配置(httpd.conf);

四、支持虛擬主機;

五、支持http認證;

六、可做爲代理服務器;

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

八、支持ssl數據傳輸;

九、支持fastcgi;

十、具備用戶會話過程的跟蹤能力;


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


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


nginx具備如下特性:

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

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

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

四、模塊化結構

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

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

七、支持熱部署。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,而不作任何處理。




1三、具體說說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分鐘,看看是否監控正常。




1四、sed和awk命令的區別?

答:

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

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

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

 

文章原始出處:http://2358205.blog.51cto.com/2348205/1688449

相關文章
相關標籤/搜索