寫給Linux系統運維的朋友

本人是linux運維工程師,對這方面有點心得,如今我說說要掌握哪方面的工具吧。說到工具,在行外能夠說是技能,在行內咱們通常稱爲工具,就是運維必需要掌握的工具。我就大概列出這幾方面,這樣入門就基本沒問題了。
linux系統若是是學習能夠選用redhat或centos,特別是centos在企業中用得最多,固然還會有其它版本的,但學習者仍是以這2個版本學習就行,由於這兩個版本都是兄弟,沒區別的,有空能夠再研究一下SUSE,有些公司也喜歡用,例如我公司 。。。。。
工具以下:
一、linux系統基礎,這個不用說了,是基礎中的基礎,連這個都不會就別幹了,參考書籍,能夠看鳥哥linux基礎篇,至少要掌握這書60%內容,沒必須所有掌握,但基本命令總得會吧
二、網絡服務,服務有不少種,每間公司都會用到不一樣的,但基礎的服務確定要掌握,如FTP, DNS,SAMBA, 郵件, 這幾個大概學一下就行,LAMP和LNMP是必需要熟練,我所指的不是光光會搭建,而是要很熟悉裏面的至關配置才行,由於公司最關鍵的絕對是WEB服務器,因此nginx和apache要熟悉,特別是nginx必定要很熟悉才行,至少有些公司還會用tomcat,這個也最好學一下。其實網絡服務方面不用太擔憂,通常公司的環境都已經搭建好,就算有新服務器或讓你整改,公司會有相應的文檔讓你參照來弄,不會讓你亂來的,但至少相關的配置必定要學熟,並且確定是編譯安裝多,那些模塊要熟悉一下他的做用,特別是PHP那些模塊。
這面2點只是基礎,也是必要條件,不能說是工具,下以纔是真正的要掌握的工具。
三、shell腳本和另外一個腳本語言,shell是運維人員必須具有的,不懂這個連入職都不行,至少也要寫出一些系統管理腳本,最簡單也得寫個監控CPU,內存比率的腳本吧,這是最最最基本了,別覺得會寫那些猜數字和計算什麼數的,這些沒什麼做用,只做學習意義,寫系統腳本纔是最有意義,而另外一個腳本語言是可選的,通常是3P,即python, perl和php,php就不須要考慮了,除非你要作開發,我我的建議學python會比較好,難實現自動化運維,perl是文本處理很強大,反正這兩個學一個就好了。
四、sed和awk工具,必需要掌握,在掌握這兩個工具同時,還要掌握正則表達式,這個就痛苦了,正則是最難學的表達式,但結合到sed和awk中會很強大,在處理文本內容和過濾WEB內容時十分有用,不過在學shell的同時通常會常常結合用到的,因此學第3點就會順便學第4點。
五、文本處理命令,sort , tr , cut, paste, uniq, tee等,必學,也是結合第3點時一併學習的。
六、數據庫,首選mysql,別問我爲何不學sqlserver和oracle,由於linux用得最多絕對是mysql,增刪改查必學,特別要學熟查,其它方面可能不太須要,由於運維人員使用最多仍是查,哪些優化和開發語句不會讓你弄的。
七、防火牆,不學不行,防火牆也算是個難點,說難不難,說易不易,最重要弄懂規則,若是學過CCNA的朋友可能會比較好學,由於iptables也有NAT表,原理是同樣的,而FILTER表用得最多,反正不學就確定不合格。
八、監控工具,十分十分重要,我我的建議,最好學這3個,cacti,nagios,zibbix,企業用得最多應該是nagios和 zibbix,反正都學吧,但nagios會有點難,由於會涉及到用腳本寫自動監控,那個地方很難。
九、集羣和熱備,這個很重要,確定要懂的,但到了公司就不會讓你去弄,由於新手基本不讓你碰,集羣工具備不少,最好學是LVS,這是必學,最好也學學nginx集羣,反向代理,還有熱備,這個就更多工具能實現了,像我公司是本身開發熱備工具的,mysql熱備也要學,就是主從複製,這個別告訴我容易,其實不容易的,要學懂整個流程一點也不容易,只照着作根本沒意思。
十、數據備份,不學不行,工具備不少,但至少要把RAID的原理弄懂,特別是企業最經常使用的1+0或0+1,本身作實驗也要弄出來,備份工具備不少,如tar, dump, rsync等,最好多瞭解一下。
算了,說到這10點已經夠你受了,應該能夠入門了,由於有些技術會比較難學,例如apache和nginx中還有些很重要的技術,如系統調優和服務優化,還有程序優化,這些在沒接觸工做前很難學習到的,因此先把這10點學了吧,估計要學熟至少3個月不止,就腳本那部分已經讓你很吃力了,我建議是先學熟shell,等工做後再學另外一門腳本語言,這樣會比較好。
以上就是踏入linux運維工程師須要掌握的工具,其實還有不少工具要掌握的,但你在學習環境中是很難學到,最後我再提醒一下,這裏所指的工具至關於技能,而不是像windows或ubuntu那些圖形化工具,那些工具沒用的,還有,學linux就別裝圖形界面,這樣虛擬機就不用吃太多內存,並且絕對不建議在真機上裝linux,這樣只用於裝B用,根本達不到學習效果。php

#####################################################################################python

曾經在一年多前寫了一篇關於要成爲linux運維須要掌握哪些技能和工具的貼子,而後不當心被好幾個網友抄襲轉發到其它網站上,固然有些是認識的,最後還很幸運地被某些熱心的學習者把那段內容剪下來看成聖經般的參考,爲此我很感動,爲了報答一些熱心學習linux的朋友,下面本人將推出第二版介紹linux運維須要掌握的技能文章。
首先,我們先討論什麼是運維,不少人徹底不懂運維是幹什麼的,只知道學linux,但總有個目的吧。這樣吧,我們區分一下學linux能幹什麼工做爲主,通常分爲維護類和開發類,開發類就是底層開發偏多,還有嵌入式,底層開發就是C了,通常是linux C開發,這個需求量不大,雖然工資比較高,但難度實在高,反正不是每間公司都有這些崗位,而嵌入式這個簡直是高端技術活,懂這個直接無視我這個文章啦。因此咱們既然不是作開發的,那麼就作維護方面,就是linux運維這崗位了。

具體運維是作什麼呢,從字面意思:運行維護,就是公司服務器的運行與維護,但若是隻是這麼想,實際上是不太對的,保障服務器的運行與維護,有些人會理解成硬件方面,那就是網絡運維,我們學的內容是應用方面的,簡稱是應用運維,而應用就在平臺上,什麼叫平臺呢,這個你們從工做中就會明白,這些就很少解說了。mysql

下面開始說說要掌握什麼技術linux

這個傳送門貼子基本包含了運維須要掌握的技術,其實我也沒須要再補充什麼,由於學得越多,能掌握的其實就越少,你總不可能每天學一大堆東西都能徹底掌握吧,而每間公司可能才那麼須要幾個技術點就夠了,其它你學過的技術點沒一會就忘記了,這是人之常情,你的大腦不是硬盤,用一會就容易忘記的,不可能長期都會記得住的。ios

下面介紹一下怎麼纔算掌握到這個技術點?nginx

有些人會覺得,我懂部署這個軟件,設置這個功能,我就學會了,例如我會部署LAMP,LNMP,我就很牛了,特別有不少種部署方法我都掌握,或者我能寫個腳本一鍵去安裝部署,覺得很厲害,其實我只能說句,這只是入門級別,在一些面試官眼中,這簡直是不值一提的技術,部署什麼服務什麼的,難聽點說句,找個網管上網隨便搜索篇文章對着弄就好了,有何難度,並且你去到公司裏,不少平臺架構都弄好了,還須要你去裝什麼LAMP嗎,必定要明白這個道理,懂安裝懂配置什麼的,只是基本功,並非說你對LAMP很熟很瞭解,其實你是不瞭解,從大學或培訓機構裏學的都是部署環境之類的技術,其實根本就不懂怎麼去應用這個環境架構,例如公司要求對某個功能進行安全加固,在apache裏有這個模塊,添加後還須要配置,而後平常的維護又須要去操做,還有apache的日誌格式須要輸出帶有session id的格式,這些需求你真的懂嗎,不是單單會部署會安裝就覺得學會,其實LAMP是很難的,不是你想象中那麼簡單。面試

不要把每件事看得很簡單,在學習過程當中,你們會覺得使用這個軟件基本功能就覺得學會了,其實當工做後,須要對這個軟件學得比較精通,才叫真正掌握到,例如監控軟件zabbix或nagios,你在學習時可能只是懂安裝和簡單的配置,但裏面有些複雜的功能,你還須要去慢慢了解,如像trigger這些比較難又很差理解的功能等。正則表達式

每當面試時,須要說出你的優勢是什麼,其實簡單點說,拿出你的亮點,不是說我懂這個軟件的安裝和配置,這些都是零分,例如我懂得怎麼優化這軟件,怎麼深刻操做這軟件等。sql

你們其實把linux理解成windows就好了,只是換成命令行操做罷了,運維都是要掌握各式各樣的軟件,就像你用windows辦公,是否是要裝office,輸入法,瀏覽器,殺毒軟件等,其實道理和概念是同樣的,不要把linux看成很高端的樣子。shell

最後,我說說運維的真正核心技能,那些什麼安裝部署環境等,所有均可如下個文檔去對照操做,這些操道別說網管,連開發均可以代替你去作,因此運維必定要掌握有價值的技術,才能體現出價值,要讓開發和網管是沒法代替到的,下面我說說入門級的:

監控軟件,這個就算是網管和開發都難以掌握,主要是配置複雜,他們沒心去弄,並且監控是運維的重要職責,固然還得看公司資源問題,監控常見的有不少,但最經常使用仍是nagios,zabbix,cacti這三款,其實把這三款學熟是件不容易的事,別覺得部署出來能配置一些簡單的監控項就表明會監控了,絕對不是那麼簡單的,你看看zabbix就知道了,我曾經作過一個zabbix二次開發的項目維護,那個難度不是通常的高,並且功能又多又難搞,毫不是什麼培訓機構1-2天就教會的,這是不可能的。

其次就是shell腳本,這是運維的核心技能,也是必須要掌握的,若是不掌握腳本能力,你就別作了,甚至你根本就作不了,面試官一見你連簡單的腳本都寫不了,直接不要。

那有些人就怕了,個人編程能力不好,真的寫不出啊。其實誰的編程能力會強,除非是天生頭腦特靈活的人,不然其實你們的水平都不會相差太遠,腳本比開發語言簡單得多了,只是你們沒遇到一些案例和需求,因此是寫不出來,這個是須要慢慢去練習的。

核心技能是這2個爲主,而後有加分的,例如掌握python和perl和php,固然,對於一個剛入行的人來講,這基本不太可能了,一來是精力沒太多,二來是時間沒有,這個只能入行後再去學習。

下面說說運維在工做中須要掌握的技術,注意,這是在工做中掌握的,在學習過程當中是比較難掌握的

一共四大方面:一、排錯;二、優化;三、數據庫;四、開發語言,第5必須的,就是運維意識,至關重要

第1點和第2點都須要經驗去支持,這個沒經驗你根本不知道排錯和優化是怎麼搞,在學校和培訓機構各類吹虛裏,根本就不可能掌握到,這不是說你安裝什麼軟件時遇到錯誤能解決那些,那種雖然也叫排錯,但只是基礎級別,真正的排錯是指平臺出故障,讓你去分析與處理,而出現的錯誤會各式各樣,並且涉及的範圍也很廣,因此這個是須要經驗去支持的。

第2點優化更是個大問題,基本沒經驗是弄不了,別覺得培訓機構會教1-2天優化課程就掌握了這技術,這是不可能的,優化能夠說是運維最吃香的技能,但也是最高難度的,由於涉及的知識面很廣並且還須要很深刻了解,優化是有風險,不是隨便在網上搜個文章對着改一下配置文件參數或系統參數就優化了,這是亂來有風險的,甚至怎麼樣纔算有效優化,我也不想說,由於對於沒入行的人來講是很難去理解。

第3點數據庫,也是運維加工資的重要核心技能,有些公司的運維可能接觸不到數據庫,其實運維的加工資技能要麼就是開發,要麼就是數據庫,若是這2點都不會,那麼就是個比網管高級點的打雜罷了,相對於數據庫來講,運維的操做仍是會有的,並且還昔昔相關,一但操做失誤又沒法回滾,你就真的要滾回家了。

第4點開發語言,就是上面所說的,要懂PYTHON或PHP,至於學這個幹麻,這個我也很差說,要解釋又一大段話,只能說如今都存在這個需求,特別是python,你會發現公司招聘時有這個需求,但真正工做時又不須要用,其實不是這個意思,python是本身想用就用,而不是公司要求你用,例如你去完成一個很麻煩的操做,而shell可能沒法知足你或者效率很低,那麼你就須要用python去知足,這是本身需求使用的,跟公司無關,但就能體現出你的價值了。

而第5點是每一個運維都必須的,意識是很重要,並非你技術很牛,學的技術不少很熟,就不表明你不須要運維意識,其實領導很看重運維意識的,例若有沒有作好備份,權限分配問題,平臺測試狀況,故障響應時間等,這些都是意識,而不是你學了不少技術自認大牛了,平臺發現故障你又沒什麼大不子,覺得很簡單的問題喜歡處理就處理,不須要向其它部門反饋等,領導不是看你的技術如何,而是看你的運維意識如何,你沒運維意識,技術再牛也沒用,只會讓其它部門的人跟你不協調。

大概就說到這吧,今年個人目標是把數據庫學熟,而後轉DBA,而後再加個PY,要知道作IT這行是苦B的,須要無盡的學習,不學習只會被淘汰,不想被年輕的淘汰,就只能不斷增值本身,否則不是你工資沒法提高,而是你沒法再從事這行,但願這篇文章能幫到你們.

相關文章
相關標籤/搜索