这个问题挺好的,回答这个问题也是对自身的审查,看看自己还欠缺哪些。(所以我估计得好好思考下,也许下一刻我就会突然惊醒,发现我还是战⑤渣)
首先限定在Linux运维工程师上
回答仅代表我想到,不代表我都会
1. Linux基础
包括对Linux整体的理解/使用和基本命令:
2. 运维的命令:
运维相关的工具(命令),了解它能解决很多问题。
前几天刚回答了一个问题:如何才能更深入的学习linux?
里面的图在这里也可以用到:
可以对着图对学习了解这些命令。
另外我个人也会对平时用到的这些工具做一个整理和记录,总结到我的个人维基上:Wiki · Tanky Woo
3. 基础服务:
可以本地搭建练练手
这里推荐鸟哥另外一本书 服务器架设篇: 鸟哥的Linux私房菜 (豆瓣)
4. 运维平台工具:
也在这个问题 如何才能更深入的学习linux? 里提到了:
可以选择性的折腾下,因为这个涉及到业务,没有实际环境,很难去理解他们的功能和特点。
5. 脚本:
6. 底层:
7. 网络:
网络是非常重要的一块
8. 安全:
9. 硬件:
10. 其它:
了解更多特定技能要求的方式:
Google搜"Linux运维工程师 招聘",看看他们的需求。
最后推荐一本书:Unix/Linux系统管理技术手册 UNIX/Linux 系统管理技术手册 (豆瓣)
后续想到再做补充
除了技能,我觉得素养(态度)也可以谈谈
这个正好看到右边相关问题:运维工程师需要具备哪些性格特质?
1. 安全
运维人员的权限很大,所以一定要保证帐号/私钥的安全。
以上任何一点都很重要,否则弄丢了,风险会非常大。
2. 责任心
如上面那个帖子里 @山大 提到的 Owner 意识
3. 细心
你的任何一个操作,都可能造成系统的损坏、业务出问题。所以敲命令时一定要细心、再三确认。你敲的再快,也就节省那么一点时间,出了问题才是大事。
4. 推进/改善
如果代码有问题,导致系统开销很大,比如负载,io等。应该第一时间和开发部门确认,要求优化代码。
5. 进取心/不断学习
运维的知识范围很广,要不断学习。遇到问题,做好分析记录,事后还可以在部门内分享交流。
这也是我为什么热衷于写技术博客和维基的原因,好记性不如烂笔头。记录整理的过程也是一个思考升华的过程。
再给一个干货,我们公司(知道创宇)的技能表:http://blog.knownsec.com/Knownsec_RD_Checklist/v2.2.html
里面涵盖了部分Linux SA需要的技能。