Linux運(yùn)維工程師必須掌握的基礎(chǔ)技能有哪些?
這個(gè)問題挺好的,回答這個(gè)問題也是對自身的審查,看看自己還欠缺哪些。(所以我估計(jì)得好好思考下,也許下一刻我就會(huì)突然驚醒,發(fā)現(xiàn)我還是戰(zhàn)⑤渣)
首先限定在Linux運(yùn)維工程師上
回答僅代表我想到,不代表我都會(huì) :(
技能:
1、Linux基礎(chǔ)
包括對Linux整體的理解/使用和基本命令:
了解Linux FHS : Filesystem Hierarchy Standard,國人寫的這本書不錯(cuò) Linux系統(tǒng)架構(gòu)與目錄解析 (豆瓣)
入門Linux:鳥哥的Linux私房菜.基礎(chǔ)學(xué)習(xí)篇(第三版) (豆瓣) 個(gè)人認(rèn)為鳥哥的這本書是一本非常好的入門書
基本操作命令:Google,如Linux command cheat sheet
熟悉至少一個(gè)內(nèi)置編輯器: vi, nano
至少熟悉一個(gè)發(fā)行版(或系列),建議作為服務(wù)器常用的如Centos, Debian, Ubuntu,可以了解多個(gè)常用發(fā)行版
個(gè)人使用/開發(fā)盡量在Linux上,比如我前期選擇了 Gentoo Welcome – Gentoo Linux ,非常Cool的一個(gè)Linux發(fā)行版,配合官方的 Handbook Handbook:Main Page,可以學(xué)到很多東西
2、運(yùn)維的命令:
運(yùn)維相關(guān)的工具(命令),了解它能解決很多問題。
前幾天剛回答了一個(gè)問題:如何才能更深入的學(xué)習(xí)linux?
里面的圖在這里也可以用到:
可以對著圖對學(xué)習(xí)了解這些命令 (<strike>抱歉圖片的原始來源我沒有搜到,如果有朋友知道,麻煩告訴我,謝謝</strike> 感謝 @jeremy yang 的提示,已經(jīng)搜到來源 http://www.brendangregg.com/linuxperf.htmlhttp://www.slideshare.net/brendangregg/linux-performance-analysis-and-tools)。
另外我個(gè)人也會(huì)對平時(shí)用到的這些工具做一個(gè)整理和記錄,總結(jié)到我的個(gè)人維基上:Wiki · Tanky Woo
3、基礎(chǔ)服務(wù):
LAMP或LNMP :Apache/Nginx,MySQL,PHP/Python/Perl LAMP (software bundle)
FTP
DNS
SAMBA
NTP
DHCP
...
可以本地搭建練練手
這里推薦鳥哥另外一本書 服務(wù)器架設(shè)篇: 鳥哥的Linux私房菜 (豆瓣)
4、運(yùn)維平臺(tái)工具:
也在這個(gè)問題 如何才能更深入的學(xué)習(xí)linux? 里提到了:
Nagios
Puppet
Zabbix
Cacti
SaltStack
....
可以選擇性的折騰下,因?yàn)檫@個(gè)涉及到業(yè)務(wù),沒有實(shí)際環(huán)境,很難去理解他們的功能和特點(diǎn)。
5、腳本:
必備:Shell
額外:Python,Perl...
6、底層:
Linux C,內(nèi)核
7、網(wǎng)絡(luò):
網(wǎng)絡(luò)是非常重要的一塊
把《TCP/IP協(xié)議詳解》多看幾遍,理解。
熟練使用tcpdump等抓包工具
8、安全:
防火墻配置,如 iptables, ipset
9、硬件:
接口類型
查看硬件信息
知道各類型服務(wù)器,如塔式、機(jī)架式、刀片式
10、其它:
了解更多特定技能要求的方式:
Google搜"Linux運(yùn)維工程師 招聘",看看他們的需求。
最后推薦一本書:Unix/Linux系統(tǒng)管理技術(shù)手冊 UNIX/Linux 系統(tǒng)管理技術(shù)手冊 (豆瓣)
后續(xù)想到再做補(bǔ)充
素養(yǎng)/處理方式:
除了技能,我覺得素養(yǎng)(態(tài)度)也可以談?wù)?/p>
這個(gè)正好看到右邊相關(guān)問題:運(yùn)維工程師需要具備哪些性格特質(zhì)?
1、安全
運(yùn)維人員的權(quán)限很大,所以一定要保證帳號/私鑰的安全。
最好使用加密工具存儲(chǔ)。比如truecrypt,1password
基于本地存儲(chǔ)。切勿用網(wǎng)盤,也不建議用lastpass等
ssh私鑰添加密碼
以上任何一點(diǎn)都很重要,否則弄丟了,風(fēng)險(xiǎn)會(huì)非常大。
2、責(zé)任心
如上面那個(gè)帖子里 @山大 提到的 Owner 意識(shí)
遇到報(bào)警,第一時(shí)間處理,而不要等著他人去處理
如果無法處理,應(yīng)該第一時(shí)間讓同事協(xié)助幫忙,而不要禁止報(bào)警,讓問題掩蓋
3、細(xì)心
你的任何一個(gè)操作,都可能造成系統(tǒng)的損壞、業(yè)務(wù)出問題。所以敲命令時(shí)一定要細(xì)心、再三確認(rèn)。你敲的再快,也就節(jié)省那么一點(diǎn)時(shí)間,出了問題才是大事。
4、推進(jìn)/改善
如果代碼有問題,導(dǎo)致系統(tǒng)開銷很大,比如負(fù)載,io等。應(yīng)該第一時(shí)間和開發(fā)部門確認(rèn),要求優(yōu)化代碼。
5、進(jìn)取心/不斷學(xué)習(xí)
運(yùn)維的知識(shí)范圍很廣,要不斷學(xué)習(xí)。遇到問題,做好分析記錄,事后還可以在部門內(nèi)分享交流。
這也是我為什么熱衷于寫技術(shù)博客和維基的原因,好記性不如爛筆頭。記錄整理的過程也是一個(gè)思考升華的過程。
再給一個(gè)干貨,我們公司(知道創(chuàng)宇)的技能表:http://blog.knownsec.com/Knownsec_RD_Checklist/v3.0.html,里面的技能點(diǎn)非常全面,也包含了運(yùn)維相關(guān)