作者:Tanky Woo
链接:https://www.zhihu.com/question/23665108/answer/25299881来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。技能:
1. Linux基础
包括对Linux整体的理解/使用和基本命令:
了解Linux FHS : ,国人写的这本书不错
入门Linux: 个人认为鸟哥的这本书是一本非常好的入门书
基本操作命令:Google,如Linux command cheat sheet
熟悉至少一个内置编辑器: vi, nano
至少熟悉一个发行版(或系列),建议作为服务器常用的如Centos, Debian, Ubuntu,可以了解多个常用发行版
个人使用/开发尽量在Linux上,比如我前期选择了 Gentoo ,非常Cool的一个Linux发行版,配合官方的 Handbook ,可以学到很多东西
2. 运维的命令:
运维相关的工具(命令),了解它能解决很多问题。
前几天刚回答了一个问题:
里面的图在这里也可以用到:
<img src="https://pic3.zhimg.com/b3c020e713fb94ddadb18f19be52a8ca_b.jpg" data-rawwidth="754" data-rawheight="472" class="origin_p_w_picpath zh-lightbox-thumb" width="754" data-original="https://pic3.zhimg.com/b3c020e713fb94ddadb18f19be52a8ca_r.jpg">可以对着图对学习了解这些命令 (<strike>抱歉图片的原始来源我没有搜到,如果有朋友知道,麻烦告诉我,谢谢</strike> 感谢![b3c020e713fb94ddadb18f19be52a8ca_b.jpg](https://pic3.zhimg.com/b3c020e713fb94ddadb18f19be52a8ca_b.jpg)
可以对着图对学习了解这些命令 (<strike>抱歉图片的原始来源我没有搜到,如果有朋友知道,麻烦告诉我,谢谢</strike> 感谢
的提示,已经搜到来源 )。
另外我个人也会对平时用到的这些工具做一个整理和记录,总结到我的个人维基上:
3. 基础服务:
LAMP或LNMP :Apache/Nginx,MySQL,PHP/Python/Perl
FTP
DNS
SAMBA
EMAIL
NTP
DHCP
...
可以本地搭建练练手
这里推荐鸟哥另外一本书 服务器架设篇:
4. 运维平台工具:
也在这个问题 里提到了:
Nagios
Puppet
Zabbix
Cacti
SaltStack
....
可以选择性的折腾下,因为这个涉及到业务,没有实际环境,很难去理解他们的功能和特点。
5. 脚本:
必备:Shell
额外:Python,Perl...
Linux C,内核
7. 网络:
网络是非常重要的一块
把《TCP/IP协议详解》多看几遍,理解。
熟练使用tcpdump等抓包工具
防火墙配置,如 iptables, ipset
接口类型
查看硬件信息
知道各类型服务器,如塔式、机架式、刀片式
10. 其它:
了解更多特定技能要求的方式:
Google搜"Linux运维工程师 招聘",看看他们的需求。
最后推荐一本书:Unix/Linux系统管理技术手册
后续想到再做补充
素养/处理方式:
除了技能,我觉得素养(态度)也可以谈谈
这个正好看到右边相关问题:
1. 安全
运维人员的权限很大,所以一定要保证帐号/私钥的安全。
最好使用加密工具存储。比如truecrypt,1password
基于本地存储。切勿用网盘,也不建议用lastpass等
ssh私钥添加密码
以上任何一点都很重要,否则弄丢了,风险会非常大。
2. 责任心
如上面那个帖子里
提到的 Owner 意识
遇到报警,第一时间处理,而不要等着他人去处理
如果无法处理,应该第一时间让同事协助帮忙,而不要禁止报警,让问题掩盖
3. 细心
你的任何一个操作,都可能造成系统的损坏、业务出问题。所以敲命令时一定要细心、再三确认。你敲的再快,也就节省那么一点时间,出了问题才是大事。
4. 推进/改善
如果代码有问题,导致系统开销很大,比如负载,io等。应该第一时间和开发部门确认,要求优化代码。
5. 进取心/不断学习
运维的知识范围很广,要不断学习。遇到问题,做好分析记录,事后还可以在部门内分享交流。
这也是我为什么热衷于写技术博客和维基的原因,好记性不如烂笔头。记录整理的过程也是一个思考升华的过程。