1. 程式人生 > >運維工程師必須掌握的基礎技能有哪些?

運維工程師必須掌握的基礎技能有哪些?

運維工程師必須掌握的基礎技能有哪些?

作者:Tanky Woo
鏈接:https://www.zhihu.com/question/23665108/answer/25299881
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。

1. Linux基礎

包括對Linux整體的理解/使用和基本命令:

  • 了解Linux FHS : Filesystem Hierarchy Standard,國人寫的這本書不錯 Linux系統架構與目錄解析 (豆瓣)

  • 入門Linux:鳥哥的Linux私房菜.基礎學習篇(第三版) (豆瓣) 個人認為鳥哥的這本書是一本非常好的入門書

  • 基本操作命令:Google,如Linux command cheat sheet

  • 熟悉至少一個內置編輯器: vi, nano

  • 至少熟悉一個發行版(或系列),建議作為服務器常用的如Centos, Debian, Ubuntu,可以了解多個常用發行版

  • 個人使用/開發盡量在Linux上,比如我前期選擇了 Gentoo Welcome – Gentoo Linux ,非常Cool的一個Linux發行版,配合官方的 Handbook Handbook:Main Page,可以學到很多東西


2. 運維的命令:

運維相關的工具(命令),了解它能解決很多問題。

前幾天剛回答了一個問題:如何才能更深入的學習linux?

裏面的圖在這裏也可以用到:


&amp;amp;amp;lt;img src=\‘#\‘" //pic3.zhimg.com/50/b3c020e713fb94ddadb18f19be52a8ca_hd.jpg&amp;quot; data-rawwidth=&amp;quot;754&amp;quot; data-rawheight=&amp;quot;472&amp;quot; class=&amp;quot;origin_image zh-lightbox-thumb&amp;quot; width=&amp;quot;754&amp;quot; data-original=&amp;quot;https://pic3.zhimg.com/b3c020e713fb94ddadb18f19be52a8ca_r.jpg&amp;quot;&amp;amp;amp;gt;可以對著圖對學習了解這些命令 (&amp;amp;amp;amp;lt;strike&amp;amp;amp;amp;gt;抱歉圖片的原始來源我沒有搜到,如果有朋友知道,麻煩告訴我,謝謝&amp;amp;amp;amp;lt;/strike&amp;amp;amp;amp;gt; 感謝技術分享圖片可以對著圖對學習了解這些命令 (<strike>抱歉圖片的原始來源我沒有搜到,如果有朋友知道,麻煩告訴我,謝謝</strike> 感謝可以對著圖對學習了解這些命令 (<strike>抱歉圖片的原始來源我沒有搜到,如果有朋友知道,麻煩告訴我,謝謝</strike> 感謝

@jeremy yang

的提示,已經搜到來源 brendangregg.com/linuxpslideshare.net/brendang)。


另外我個人也會對平時用到的這些工具做一個整理和記錄,總結到我的個人維基上:Wiki · Tanky Woo

3. 基礎服務:

  • LAMP或LNMP :Apache/Nginx,MySQL,PHP/Python/Perl LAMP (software bundle)

  • FTP

  • DNS

  • SAMBA

  • EMAIL

  • NTP

  • DHCP

  • ...


可以本地搭建練練手

這裏推薦鳥哥另外一本書 服務器架設篇: 鳥哥的Linux私房菜 (豆瓣)

4. 運維平臺工具:

也在這個問題 如何才能更深入的學習linux? 裏提到了:

  • Nagios

  • Puppet

  • Zabbix

  • Cacti

  • SaltStack

  • ....

可以選擇性的折騰下,因為這個涉及到業務,沒有實際環境,很難去理解他們的功能和特點。

5. 腳本:

  • 必備:Shell

  • 額外:Python,Perl...


6. 底層:

  • Linux C,內核


7. 網絡:

網絡是非常重要的一塊

  • 把《TCP/IP協議詳解》多看幾遍,理解。

  • 熟練使用tcpdump等抓包工具


8. 安全:

  • 防火墻配置,如 iptables, ipset


9. 硬件:

  • 接口類型

  • 查看硬件信息

  • 知道各類型服務器,如塔式、機架式、刀片式


10. 其它:

了解更多特定技能要求的方式:

Google搜"Linux運維工程師 招聘",看看他們的需求。

最後推薦一本書:Unix/Linux系統管理技術手冊 UNIX/Linux 系統管理技術手冊 (豆瓣)

後續想到再做補充

素養/處理方式

除了技能,我覺得素養(態度)也可以談談

這個正好看到右邊相關問題:運維工程師需要具備哪些性格特質?

1. 安全

運維人員的權限很大,所以一定要保證帳號/私鑰的安全。

  • 最好使用加密工具存儲。比如truecrypt,1password

  • 基於本地存儲。切勿用網盤,也不建議用lastpass等

  • ssh私鑰添加密碼


以上任何一點都很重要,否則弄丟了,風險會非常大。

2. 責任心

如上面那個帖子裏

@山大

提到的 Owner 意識
  • 遇到報警,第一時間處理,而不要等著他人去處理

  • 如果無法處理,應該第一時間讓同事協助幫忙,而不要禁止報警,讓問題掩蓋


3. 細心

你的任何一個操作,都可能造成系統的損壞、業務出問題。所以敲命令時一定要細心、再三確認。你敲的再快,也就節省那麽一點時間,出了問題才是大事。

4. 推進/改善

如果代碼有問題,導致系統開銷很大,比如負載,io等。應該第一時間和開發部門確認,要求優化代碼。

5. 進取心/不斷學習

運維的知識範圍很廣,要不斷學習。遇到問題,做好分析記錄,事後還可以在部門內分享交流。

這也是我為什麽熱衷於寫技術博客和維基的原因,好記性不如爛筆頭。記錄整理的過程也是一個思考升華的過程。

本文出自 “13452598” 博客,請務必保留此出處http://13462598.blog.51cto.com/13452598/1982967

運維工程師必須掌握的基礎技能有哪些?