Linux工程師必備的7個(gè)關(guān)鍵技能和必讀書(shū)目
隨著Internet技術(shù)的發(fā)展,對(duì)Linux操作和維護(hù)工程師的需求已大大增加。 作為通用操作系統(tǒng),Linux無(wú)法完全理解操作系統(tǒng)的所有方面,并且在短時(shí)間內(nèi)是不現(xiàn)實(shí)的。 本文總結(jié)了Linux操作和維護(hù)工程師在早期階段必須掌握的內(nèi)容。 您可以有目的地學(xué)習(xí)和練習(xí),并努力盡快成為一名出色的運(yùn)維工程師。
Linux操作系統(tǒng)基礎(chǔ)知識(shí)
作為L(zhǎng)inux運(yùn)維工程師,操作系統(tǒng)的基礎(chǔ)知識(shí)自然是最為基礎(chǔ)的。操作系統(tǒng)主要負(fù)責(zé)對(duì)存儲(chǔ)(磁盤管理、文件管理等)、計(jì)算(進(jìn)程狀態(tài)等)和網(wǎng)絡(luò)資源(網(wǎng)卡配置,IP配置,流量監(jiān)控等)的管理和調(diào)度,因此對(duì)于運(yùn)維工程師來(lái)說(shuō)最重要的也是學(xué)會(huì)這幾方面的工具。這些工具分為配置管理和監(jiān)控查詢等類型。
當(dāng)然,市面上這方面的圖書(shū)也是非常多,大家反響比較好的有兩本書(shū),一本書(shū)是《鳥(niǎo)哥的Linux私房菜》系列,另外一本是《UNIX/Linux系統(tǒng)管理技術(shù)手冊(cè)(第四版)》。鳥(niǎo)哥的這本書(shū)建議先閱讀基礎(chǔ)版的,里面內(nèi)容很基礎(chǔ),講解的也很詳細(xì)。
《UNIX/Linux系統(tǒng)管理技術(shù)手冊(cè)(第四版)》則是一本非常全面的技術(shù)手冊(cè),可以當(dāng)作工具書(shū)來(lái)用。其中不僅僅介紹了Linux的操作系, 主流類UNIX的配置管理都有介紹,非常適合運(yùn)維人員使用。畢竟很多數(shù)據(jù)中心不僅僅是Linux,還有很多UNIX系統(tǒng)。
網(wǎng)絡(luò)服務(wù)
涉及運(yùn)維的企業(yè)大多是對(duì)外提供服務(wù)的企業(yè),以互聯(lián)網(wǎng)公司居多。自然網(wǎng)絡(luò)服務(wù)是其最主要的服務(wù)之一了。在Linux操作系統(tǒng)上網(wǎng)絡(luò)服務(wù)的類型很多,大致上有Web服務(wù)、共享文件服務(wù)和郵件服務(wù)等幾類。當(dāng)然這只是常見(jiàn)的幾類,其實(shí)還要多得多。
以Web服務(wù)為例,通常LAMP和LNMP是必須要熟練掌握的。這里L(fēng)AMP是一系列軟件的縮寫(xiě),分別是Linux、Apache、MySQL和PHP。而LNMP中的N是Nginx的縮寫(xiě)。對(duì)于運(yùn)維人員來(lái)說(shuō),主要是Apache和Nginx的安裝、配置和故障診斷修復(fù)。
當(dāng)然,這里舉了一個(gè)具體的例子。由于Linux的網(wǎng)絡(luò)服務(wù)非常之多,具體還要根據(jù)自己從事的工作進(jìn)行選擇。具體可以參考鳥(niǎo)哥私房菜的服務(wù)器架設(shè)篇。
Shell腳本
Linux最大的特點(diǎn)是基于Linux命令行終端實(shí)現(xiàn)對(duì)操作系統(tǒng)的控制。這種方式雖然入門門檻較高,但是卻大大提升了效率。Linux命令行終端最大的特點(diǎn)是可以支持自動(dòng)化處理,也就是通過(guò)Shell腳本實(shí)現(xiàn)命令的批處理。
我們?cè)谌粘_\(yùn)維的過(guò)程中經(jīng)常需要執(zhí)行一些命令,而且很多時(shí)候是一系列的,例行的命令。這時(shí)就用到Shell腳本了。比如我們要監(jiān)控系統(tǒng)CPU的使用情況,并且定時(shí)地記錄在一個(gè)文本文件中,此時(shí)腳本就派上用場(chǎng)了。作為運(yùn)維工程師,Shell腳本是必學(xué)的內(nèi)容。
正則表達(dá)式與文本處理
運(yùn)維工程師最常見(jiàn)的工作可能就是分析日志和調(diào)整配置文件了。而這些文件都是文本文件,因此學(xué)習(xí)文本文件的處理是非常必要的。比如我們要在海量日志中檢索某個(gè)關(guān)鍵字符串,或者減少日志中某個(gè)時(shí)間段的日志等等。
對(duì)于文本文件分析常用的命令包括grep、sort、sed和awk等。其中sed和awk的功能尤其強(qiáng)大,可以借助正則表達(dá)式對(duì)文本進(jìn)行復(fù)雜的處理。因此在學(xué)習(xí)這些工具使用的情況下,還需要對(duì)正則表達(dá)式有所了解。對(duì)于正則表達(dá)式,本文推薦OReilly的《精通正則表達(dá)式》一書(shū)。
學(xué)習(xí)正則表達(dá)式不是一蹴而就的,需要在實(shí)踐中不斷學(xué)習(xí)。
監(jiān)控工具
監(jiān)控工具是運(yùn)維工程師必須掌握的工具,開(kāi)源的工具很多,比如cacti,nagios和zibbix等。很多大型的互聯(lián)網(wǎng)公司都有自己開(kāi)發(fā)的監(jiān)控系統(tǒng),這就另當(dāng)別論了。
為什么要學(xué)習(xí)監(jiān)控工具,因?yàn)閷?duì)于大規(guī)模Web服務(wù),我們不可能坐等問(wèn)題發(fā)生,甚至問(wèn)題發(fā)生了都不知道。而是需要在出現(xiàn)問(wèn)題的時(shí)候進(jìn)行告警,或者是做到預(yù)警,最好能做到在客戶感知問(wèn)題之前已經(jīng)將問(wèn)題解決。監(jiān)控工具就是起到這個(gè)作用的,它將問(wèn)題通過(guò)短信或者郵件的方式及時(shí)的告知運(yùn)維人員,以便修復(fù)問(wèn)題。
集群高可用
對(duì)于關(guān)鍵業(yè)務(wù)通常要做到7*24小時(shí)不中斷,也就是高可用。以某東和某寶為例,如果出現(xiàn)一分鐘的業(yè)務(wù)中斷,估計(jì)要損失數(shù)百萬(wàn),甚至數(shù)千萬(wàn)了。因此對(duì)于關(guān)鍵業(yè)務(wù)必須通過(guò)服務(wù)器集群的方式保證其高可用。
高可用在Linux操作系統(tǒng)中也有很多開(kāi)源軟件,很多公司也使用這些軟件。比如用戶負(fù)載均衡的LVS和Nginx,用戶高可用的Linux-HA和KeepAlive等,還有數(shù)據(jù)庫(kù)主備軟件等等。這些軟件不一定要精通,但原理一定要清楚。
數(shù)據(jù)備份與恢復(fù)
數(shù)據(jù)就是企業(yè)的生命,如果一個(gè)企業(yè)出現(xiàn)丟失數(shù)據(jù)的情況,那么這個(gè)公司離倒閉也就不遠(yuǎn)了。因此,對(duì)于運(yùn)維人員來(lái)說(shuō),學(xué)習(xí)數(shù)據(jù)備份和恢復(fù)也是不可或缺的。
關(guān)于數(shù)據(jù)備份方面有很多商業(yè)的軟件,本文不再贅述。在Linux操作系統(tǒng)中其實(shí)也有很多備份的軟件。比如網(wǎng)絡(luò)存儲(chǔ)NFS,它可以作為數(shù)據(jù)的集中備份服務(wù)器,實(shí)現(xiàn)業(yè)務(wù)服務(wù)數(shù)據(jù)的備份;rsync工具,可以實(shí)現(xiàn)數(shù)據(jù)的差量備份等等。
今天本號(hào)總結(jié)了Linux運(yùn)維必須要知道的Linux相關(guān)技術(shù)和知識(shí)點(diǎn),這里僅是拋磚引玉,希望對(duì)剛?cè)腴T的運(yùn)維工程師有所幫助。另外,為了大家能夠深入地學(xué)習(xí),本文推薦了基本不錯(cuò)的圖書(shū)。相信大家通過(guò)不斷的學(xué)習(xí)和實(shí)踐,一定能夠成為一名優(yōu)秀的運(yùn)維工程師。