1. 程式人生 > >如何快速成為一名合格的Linux運維工程師

如何快速成為一名合格的Linux運維工程師

如今的網際網路,絕大多數的網站、服務、遊戲均是跑在Linux上面的,雖說Linux發行版眾多,只要玩熟了一種發行版,瞭解了Linux精髓、基本架構、設計原理,其他都是觸類旁通的,千萬不要在選擇哪一發行版而浪費很多時間,不值當的,這就如同我是上清華好,還是上北大好呢?統稱為[清北謎題]了,這裡個人建議新手還是選擇CentOS或者RHEL上手為好。

作為剛入門的同學,無非視訊、書籍、網站帖子之類的學習方式,視訊雖然講得詳細,但是所需要花費的時間也是巨大的,據我瞭解很少有人能持之以恆把一系列視訊看完;網站帖子之類的,一般都比較散亂,不成學習系統,學起來如同沒有頭的蒼蠅;書籍從目錄來看就非常有條理,看書可以系統化的學習、循序漸進,不會初學者不知道從哪兒開始的感覺。建議選擇一本Linux入門書籍,前期可以安裝一個Linux虛擬機器,重複練習為主要手段,把一本書好好吃透,重點是吃透,那麼你也就入門了,尤其推薦想自學Linux系統的同學買一本《Linux就該這麼學》,這本書從零基礎開始講起,涵蓋的知識不僅實用,而且有實驗可以做,隨時檢查自己的學習進度。

那麼具體需要掌握哪些知識呢?這裡羅列一些必須掌握的知識:

1、瞭解Linux FHS,這是Linux的體系結構,明白大致原理

2、重複60個常用Linux基礎、命令,掛載

3、TCP/IP協議,網路配置相關知識

4、SSH原理及應用

5、防火牆的基本配置,iptables

在Linux下面掌握一些初級工具、技能是非常有必要的:

1、Vim編輯器,無論對於寫配置檔案,還是寫語言指令碼,Vim始終是Linux上面的必備神氣,需要掌握基本操作方法、快捷鍵。

2、Git版本控制,很多人可能覺得沒有必要,這個是開發才學的嘛,其實不然,今天Devops的日漸崛起,對於傳統運維工程師來說是一個挑戰,也是一個機遇。工程師們日常需要寫大量的指令碼,可以使用Git來管理、備份常用程式碼、指令碼。

3、Shell程式設計,寫腳本當然需要Shell啦,這也是基礎。同上,作為Devops來說,再學習一門高效的指令碼語言也是必需的,這裡推薦Python,不過這是後話,先把Shell掌握了再說吧。

其實如果你把上面的要求掌握到80%,基本上算入門了,接下來需要去學習一些硬體知識,做運維工程師會經常和網路裝置,伺服器等硬體裝置打交道,對於硬體知識也要做到了解。特別是判斷硬體的優劣的核心引數,比如記憶體的儲存介質、容量、速度、奇偶校驗,CPU的製造工藝、核數執行緒、內外頻、快取等等。我們在工作中不僅僅只需要“軟知識”,“硬知識”也是必不可少的關鍵技能,特別是當公司業務劇增,需要新增機房、伺服器時,就要用很多“硬知識”了,網路傳輸介質的選擇、UPS等等,都應該有所瞭解。

之前學習的都是基礎的“軟知識”,接下來就要學習一些高階的“軟知識”。掌握最常用的服務搭建,每個公司也業務架構都不太一樣,但是常用的服務也就那些,簡單來說業務架構就是各種服務不同形式的組合。對於Linux運維工程師來說,你公司需要搭建各種伺服器,比如檔案共享伺服器、Git伺服器、資料庫伺服器、常見Web架構的部署、大公司可能還需要DHCP伺服器等等。

一般來說你搭建某類伺服器,都會有官方的指導手冊。比如MySQL伺服器的搭建、Git伺服器搭建等等。Google到官網按照Tutorial手冊一步一步來(翻牆自己找梯子,百度到官網也行),基本上八九不離十的,當然也有很多網友現成的帖子可以直接翻翻看。這裡需要注意的是,Linux的版本不一樣,服務安裝會有一些差異,當你遇到問題搜尋的時候,建議加上Linux的發行版本,這樣可以更加精準的匹配問題,你可以放心,你遇到的問題,你前面的無數人已經遇到過了(樂於分享回饋後來人)。

高階的這裡就不多說了,入門就入門,不亂指路了。在這裡還想結合工作經驗多囉嗦幾句,前面說的Devops,也是將來的一個趨勢,Linux運維工程師將不再是守著機房、伺服器、苦逼的7*24小時值班,自動化監控、自動化運維是未來的發展方向,因此建議多學習一門開發語言,按目前國內外網際網路環境分析,學Python是沒錯的,不解釋。