Linux运维工程师必须掌握的基础技能有哪些?



  首先限定在linux运维工程师上

  回答仅代表我想到,不代表我都会 🙁

  技能:

  1、Linux基础

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

  了解Linux FHS : Filesystem Hierarchy Standard,国人写的这本书不错 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?

  里面的图在这里也可以用到:

linux运维工程师必须掌握的基础技能

  另外我个人也会对平时用到的这些工具做一个整理和记录,总结到我的个人维基上: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、进取心/不断学习

  运维的知识范围很广,要不断学习。遇到问题,做好分析记录,事后还可以在部门内分享交流。

原创文章,作者:Zhang Miao Miao,如若转载,请注明出处:https://www.yidc.net/archives/11023