我想丰富一下自己的知识,然后想去学习关于linux系统运维的课程,不知

亲身经历:远离培训机构才能做好运维
亲身经历:远离培训机构才能做好运维
  【编者按】
  早在2010年,老曹就开始了puppet运维自动化之旅,但他逐渐了解到运维自动化是一个很鸡肋的技能,就像屠龙之术一样,对大部分人来说学会了很炫的技能,但是无龙可屠。现在的自动化运维都有很大的忽悠成分,大公司请个外来户搞自动化几乎不太可能,小公司就那么两台机器,做运维自动化更是浪费人力。老曹希望做运维的小伙伴们不要沉迷于自动化培训的热潮上,而是把更多精力用在技术浪潮上&&只有这样才能真的提高竞争力,故而写下了此文,给大家做个参考,纯属个人建议,欢迎拍砖。
  运维自动化是2010年开始炒得很热的一个概念,也让很多工程师、用人单位瞎激动了很久,我也跟风学过puppet和python,求职双方也经常在面试时花大量时间谈运维自动化。
  但冷静下来想想,所谓自动化,只是让培训机构赚钱的噱头而已。
  一句话概括运维自动化
  单说&运维自动化&几个字太抽象容易被主观塞进去很多概念,上百科搜索到IT运维自动化的介绍又太详细、大帽子太多。
  如果把运维自动化在一句话说清楚,比较官派的说法就是:&运维自动化就是在企业业务越来越复杂、对IT人员要求越来越高&&balabalabla&&的前提下,靠人工已经无法满足运维工作的需求,只能靠自动化技术来解决这一问题。&
  如果用比较粗糙的说法就是&活多人少的情况下,运维不想靠堆人力去解决繁琐的问题,只能靠运维自动化来给自己减负。&
  运维自动化理论与现实相悖
  粗看这些理论挺有道理,但仔细分析根本不是这么回事。首先,我们真的忙了吗?
  我认为运维的工作量并没有随着企业需求越来越复杂而变大,就算变大也不是靠自动化能解决的体力活。
  运维自动化是给运维用的,请各位运维想想,我们的日常工作,这些年来有太大变化吗?
  初级运维大部分时间在做上线和监控,高级运维在改结构修bug。对于那些重复性的工作,云计算供应商能比你做的更好,云主机、云监控、云RDS、云存储等等服务都是在给运维减负。
  企业业务需求越来越复杂是真的,具体来说是技术进步企业要求越来越刁钻了。数据库要求主从实时同步,存储不能用NFS要用分布式,前端业务要求无缝切换等等。我是不是谈偏题了,这些东西跟运维自动化有什么关系?你意识到问题就好,我们这些年新增的业务需求,没多少是可以靠运维自动化解决的,要解决这些问题,还要靠我们自己的脑子。
  运维自动化=shell脚本
  其实我们一直在做运维自动化,因为我们会用shell脚本。
  我们可以说只要企业需求有变动,我们就要搭服务、搭监控,做这些事情都要写自动化脚本。当你激动的说到&自动化脚本&的时候,我想问一下,你不会写shell脚本吗?
  搭完某个服务以后,一个有经验有责任心的运维,自然会写好系统优化脚本,复制监控监控模版。如果我们用puppet,用python,最后一样脱不了指定主机名的工作。
  我们完全可以用shell脚本完成各种模拟运维操作的动作,熟练使用shell脚本也是每个运维的必修课,我们有必要为了一个噱头去学习python吗?
  我曾经看过puppet的官方文档,他能管理的资源列出来的有&文件&&属主属组&&挂载&&软件包&&服务&&-exec使用本地shell&,在我看来其实也就是&文件&和&-exec&。
  在Linux shell脚本里,关于运维有这么多命令&cp、scp、nc、ssh、rsync、svn、chmod、chown、service、/etc/init.d/&,这些命令已经够用了。
  我用puppet的时候,只是用他频繁监控几个重要的系统配置文件。上线的工作真正繁琐在要把realserver从LB上摘下来,且需要用人力去判断能不能摘。
  具体摘设备、传新备老代码、重启java容器、回滚代码的工作我都写好脚本了,就这样还因为麻痹大意而出了几次高负载或丢步骤的情况。
  如果能运维自动化的东西,必然能写shell脚本搞定,如果用shell脚本搞不定的东西,&运维自动&&挂&。
  运维自动化&优化
  老生常谈,运维应该眼界高一些,不要总是忙着优化手头的工作,而要想手头的工作有没有必要。
  有朋友肯定要说我的工作不到家,上线居然还需要人力判断,我承认这是问题,但这问题在架构不在运维。如果上线不需要人工干预,为什么不直接让开发执行?甚至更进一步,让应用服务器定期去svn上检测有没有新代码?在测试环境我们也会用hudson和maven让开发自己搞,但我肯定做好一个系统镜像保证他们把系统玩坏了也能快速恢复。
  在生产环境里,运维该做的不应该是纠结一步人肉操作该用shell还是python代劳,而是说好好去推动一下,能不能多上几台服务器,能不能降低一下耦合度,不要让我们手动盯着上线工作了。
  我现在的公司后台做的不好,很多业务相关的sql修改都要开发写好语句给运维执行。如果这个时候我给mysql安装个phpadmin就是本末倒置,写个脚本能自动传sql过去还是本末倒置,我实际该做的是催促公司尽快做出来企业管理后台可以让运营和客服人员直接去改业务数据。
  我们写多少牛逼的python脚本,不如做一个稳定到单机房断电都不会宕机的架构;用好运维自动化很牛逼吗?是的,就跟用好某种文本编辑器一样牛逼。
  运维自动化背后的利益推动
  鼓吹自动化的大师里,很多位其实是运维开发两条腿都很短的杂鱼。
  我曾经看到过一个运维自动化的教程,作者很认真的教我们,如何用某种自动化工具调用本地shell,用sed命令将crontab里的ntpdata任务时间给变更了。看到这一段,我被他的执着蠢哭了,所谓的自动化居然是用ntpdate更新系统时间。
  我也见过某大师写的自动化代码,朋友告诉我他的python水平只值6k&&连异常都不处理,我用半瓶醋的水平仔细看了一下他的源码我真的笑出来了,每隔几行必然能看到一个os.system(&shell命令&)。
  在工作环境里,我用&tar/var/aaa/bbb/ccc/*.jpg&这类通配符匹配出来目标文件,写了个10行的脚本,将某高手用perl写了100多行,但其实就是find+tar的脚本给替换掉了。
  在处理数据的时候,我也写python脚本,因为效率远超shell脚本。但运维自动化一定要用python脚本,更新文件必用puppet,对高手来说这是风格,对新手来说这是跟风。
  有心的朋友可以帮忙查一下,从2010年开始,都有哪些培训机构新增了运维自动化课程或python运维课程,又有哪些人靠这些技术把自己包装成了大师。
  运维自动化的困境
  那些高端大气上档次的运维自动化教师们,永远无法回避我这两个问题:
  1、在一个100台机器下的小公司,搞运维自动化是不是在自己立项冒功?你写好的运维自动化系统,是不是配合着把文档写的很细很好了,会不会系统升级一下就运维自动挂了。
  越是小公司,越容易出现单台机器跑多个业务、不同机器的环境变量完全不同的情况。假设你是个技术新兵,不用自动化只会挂一台机器,用自动化挂一堆机器;假设你是个技术高手,你知道其中的风险更不会盲目的信任一个脚本。
  2、在500台机器机器以上的大公司,确实很需要运维自动化,否则光是手动画网络拓扑图和加监控就能累死人。
  但在这个环境里,最重要最有含金量的是系统架构的设计和演进;运维自动化只是减负的工作而已,哪有聪明人放着金砖不要却要板砖的?
  你觉得有没有可能这个公司几十个技术高手天天为上传个js文件累的要死,就等你一个空降兵来部署自动化系统解救他们的?
  做运维自动化,必然是自己公司内部的服务器有大量增加,增加到你觉得手动操作很累的地步,这个时候做运维自动化是水到渠成的。但运维自动化的工作一般是企业内部已有的运维来推动的,这不应该当作招人的理由。
  运维自动化也不是简单的写一些脚本或部署文件同步工具,它没有真正成型的方案,因为这是要用机器模拟运维工程师的劳动方式。每个运维团队的工作风格都不同,生搬硬套外来的自动化方案只会让我们邯郸学步举步维艰。
  如果你入职第一个月就被要求设计部署自动化方案,那只能证明这个公司确实没有运维人才,且这个公司很闲其实不需要运维。
  重新审视运维自动化
  运维自动化的目的,放低端点,就是解决运维手动操作容易出错的问题,放高端点是希望运维忽略具体命令而更重视最终成果。
  在低端领域,我们可以很自信的说,用shell脚本就是运维自动化;在高端领域,肯定已经搭建好了自动化环境供我们观摩学习和修改;如果你有幸参与到大规模自动化部署,那是确实是一次很有趣的挑战;在一个更高的层次上,你会发现诸如系统标准化、应用模块化、统一认证系统等等更有价值但没人炒作的技术。。运维自动化不用专门去学习,自动化的&大师&也不用刻意招聘。
  最顺手的工具就是最好的工具
  IT人热爱某个技术就应该成为某项技术的主人而非信徒;我在文中多次强调shell脚本的可用性是因为shell脚本是每个运维必须掌握的技能。
  在本文中我大量引用了对时下最热门的几个自动化运维工具的一些批评案例。但这些样例并不是用来攻击这些技术本身。事实上我Puppet应用QQ群是我唯一一个没有退出的Linux技术群,而我明白自己的Python水平看复杂的代码都费力。只因为这两个技术被野风吹的最火,我用他们来说明每杆大旗下都少不了盲从的人。
  如果你坚信某个技术是特别强悍的并对我的言论怒火中烧,请你想想你能用你的工具做到的事情,在我的环境里能不能提前绕过,就算碰到了我能不能用shell脚本解决掉。我并不反对你推广你的方案,但我认为&循环调用SSH命令是一个我能接受的、可行的方案&。
  我们应该减少盲从,拿起最顺手的工具去做一番事业,而不是玩赏最精美的道具却迷失了目标。
H3C认证Java认证Oracle认证
基础英语软考英语项目管理英语职场英语
.NETPowerBuilderWeb开发游戏开发Perl
二级模拟试题一级模拟试题一级考试经验四级考试资料
软件测试软件外包系统分析与建模敏捷开发
法律法规历年试题软考英语网络管理员系统架构设计师信息系统监理师
高级通信工程师考试大纲设备环境综合能力
路由技术网络存储无线网络网络设备
CPMP考试prince2认证项目范围管理项目配置管理项目管理案例项目经理项目干系人管理
职称考试题目
招生信息考研政治
网络安全安全设置工具使用手机安全
生物识别传感器物联网传输层物联网前沿技术物联网案例分析
Java核心技术J2ME教程
Linux系统管理Linux编程Linux安全AIX教程
Windows系统管理Windows教程Windows网络管理Windows故障
数据库开发Sybase数据库Informix数据库
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&本人是linux运维工程师,对这方面有点心得,现在我说说要掌握哪方面的工具吧。说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具。我就大概列出这几方面,这样入门就基本没问题了。
linux系统如果是学习可以选用redhat或centos,特别是centos在企业中用得最多,当然还会有其它版本的,但学习者还是以这2个版本学习就行,因为这两个版本都是兄弟,没区别的,有空可以再研究一下SUSE,有些公司也喜欢用,例如我公司 。。。。。
工具如下:
1、linux系统基础,这个不用说了,是基础中的基础,连这个都不会就别干了,参考书籍,可以看鸟哥linux基础篇,至少要掌握这书60%内容,没必须全部掌握,但基本命令总得会吧
2、网络服务,服务有很多种,每间公司都会用到不同的,但基础的服务肯定要掌握,如FTP, DNS,SAMBA, 邮件, 这几个大概学一下就行,LAMP和LNMP是必须要熟练,我所指的不是光光会搭建,而是要很熟悉里面的相当配置才行,因为公司最关键的绝对是WEB服务器,所以nginx和apache要熟悉,特别是nginx一定要很熟悉才行,至少有些公司还会用tomcat,这个也最好学一下。其实网络服务方面不用太担心,一般公司的环境都已经搭建好,就算有新服务器或让你整改,公司会有相应的文档让你参照来弄,不会让你乱来的,但至少相关的配置一定要学熟,而且肯定是编译安装多,那些模块要熟悉一下他的作用,特别是PHP那些模块。
这面2点只是基础,也是必要条件,不能说是工具,下以才是真正的要掌握的工具。
3、shell脚本和另一个脚本语言,shell是运维人员必须具备的,不懂这个连入职都不行,至少也要写出一些系统管理脚本,最简单也得写个监控CPU,内存比率的脚本吧,这是最最最基本了,别以为会写那些猜数字和计算什么数的,这些没什么作用,只作学习意义,写系统脚本才是最有意义,而另一个脚本语言是可选的,一般是3P,即python, perl和php,php就不需要考虑了,除非你要做开发,我个人建议学python会比较好,难实现自动化运维,perl是文本处理很强大,反正这两个学一个就行了。
4、sed和awk工具,必须要掌握,在掌握这两个工具同时,还要掌握正则表达式,这个就痛苦了,正则是最难学的表达式,但结合到sed和awk中会很强大,在处理文本内容和过滤WEB内容时十分有用,不过在学shell的同时一般会经常结合用到的,所以学第3点就会顺便学第4点。
5、文本处理命令,sort , tr , cut, paste, uniq, tee等,必学,也是结合第3点时一并学习的。
6、数据库,首选mysql,别问我为什么不学sqlserver和oracle,因为linux用得最多绝对是mysql,增删改查必学,特别要学熟查,其它方面可能不太需要,因为运维人员使用最多还是查,哪些优化和开发语句不会让你弄的。
7、防火墙,不学不行,防火墙也算是个难点,说难不难,说易不易,最重要弄懂规则,如果学过CCNA的朋友可能会比较好学,因为iptables也有NAT表,原理是一样的,而FILTER表用得最多,反正不学就肯定不合格。
8、监控工具,十分十分重要,我个人建议,最好学这3个,cacti,nagios,zibbix,企业用得最多应该是nagios和 zibbix,反正都学吧,但nagios会有点难,因为会涉及到用脚本写自动监控,那个地方很难。
9、集群和热备,这个很重要,肯定要懂的,但到了公司就不会让你去弄,因为新手基本不让你碰,集群工具有很多,最好学是LVS,这是必学,最好也学学nginx集群,反向代理,还有热备,这个就更多工具能实现了,像我公司是自己开发热备工具的,mysql热备也要学,就是主从复制,这个别告诉我容易,其实不容易的,要学懂整个流程一点也不容易,只照着做根本没意思。
10、数据备份,不学不行,工具有很多,但至少要把RAID的原理弄懂,特别是企业最常用的1+0或0+1,自己做实验也要弄出来,备份工具有很多,如tar, dump, rsync等,最好多了解一下。
算了,说到这10点已经够你受了,应该可以入门了,因为有些技术会比较难学,例如apache和nginx中还有些很重要的技术,如系统调优和服务优化,还有程序优化,这些在没接触工作前很难学习到的,所以先把这10点学了吧,估计要学熟至少3个月不止,就脚本那部分已经让你很吃力了,我建议是先学熟shell,等工作后再学另一门脚本语言,这样会比较好。
以上就是踏入linux运维工程师需要掌握的工具,其实还有很多工具要掌握的,但你在学习环境中是很难学到,最后我再提醒一下,这里所指的工具相当于技能,而不是像windows或ubuntu那些图形化工具,那些工具没用的,还有,学linux就别装图形界面,这样虚拟机就不用吃太多内存,而且绝对不建议在真机上装linux,这样只用于装B用,根本达不到学习效果。
#######################################################################
&&&&曾经在一年多前写了一篇关于要成为linux运维需要掌握哪些技能和工具的贴子,然后不小心被好几个网友抄袭转发到其它网站上,当然有些是认识的,最后还很幸运地被某些热心的学习者把那段内容剪下来当作圣经般的参考,为此我很感动,为了报答一些热心学习linux的朋友,下面本人将推出第二版介绍linux运维需要掌握的技能文章。
&&& 首先,咱们先讨论什么是运维,很多人完全不懂运维是干什么的,只知道学linux,但总有个目的吧。这样吧,咱们区分一下学linux能干什么工作为主,一般分为维护类和开发类,开发类就是底层开发偏多,还有嵌入式,底层开发就是C了,一般是linux C开发,这个需求量不大,虽然工资比较高,但难度实在高,反正不是每间公司都有这些岗位,而嵌入式这个简直是高端技术活,懂这个直接无视我这个文章啦。所以我们既然不是做开发的,那么就做维护方面,就是linux运维这岗位了。
具体运维是做什么呢,从字面意思:运行维护,就是公司服务器的运行与维护,但如果只是这么想,其实是不太对的,保障服务器的运行与维护,有些人会理解成硬件方面,那就是网络运维,咱们学的内容是应用方面的,简称是应用运维,而应用就在平台上,什么叫平台呢,这个大家从工作中就会明白,这些就不多解说了。
下面开始说说要掌握什么技术
这个传送门贴子基本包含了运维需要掌握的技术,其实我也没需要再补充什么,因为学得越多,能掌握的其实就越少,你总不可能天天学一大堆东西都能完全掌握吧,而每间公司可能才那么需要几个技术点就够了,其它你学过的技术点没一会就忘记了,这是人之常情,你的大脑不是硬盘,用一会就容易忘记的,不可能长期都会记得住的。
下面介绍一下怎么才算掌握到这个技术点?
&有些人会以为,我懂部署这个软件,设置这个功能,我就学会了,例如我会部署LAMP,LNMP,我就很牛了,特别有很多种部署方法我都掌握,或者我能写个脚本一键去安装部署,以为很厉害,其实我只能说句,这只是入门级别,在一些面试官眼中,这简直是不值一提的技术,部署什么服务什么的,难听点说句,找个网管上网随便搜索篇文章对着弄就行了,有何难度,而且你去到公司里,很多平台架构都弄好了,还需要你去装什么LAMP吗,一定要明白这个道理,懂安装懂配置什么的,只是基本功,并不是说你对LAMP很熟很了解,其实你是不了解,从大学或培训机构里学的都是部署环境之类的技术,其实根本就不懂怎么去应用这个环境架构,例如公司要求对某个功能进行安全加固,在apache里有这个模块,添加后还需要配置,然后日常的维护又需要去操作,还有apache的日志格式需要输出带有session
id的格式,这些需求你真的懂吗,不是单单会部署会安装就以为学会,其实LAMP是很难的,不是你想象中那么简单。
&不要把每件事看得很简单,在学习过程中,大家会以为使用这个软件基本功能就以为学会了,其实当工作后,需要对这个软件学得比较精通,才叫真正掌握到,例如监控软件zabbix或nagios,你在学习时可能只是懂安装和简单的配置,但里面有些复杂的功能,你还需要去慢慢了解,如像trigger这些比较难又不好理解的功能等。
&每当面试时,需要说出你的优点是什么,其实简单点说,拿出你的亮点,不是说我懂这个软件的安装和配置,这些都是零分,例如我懂得怎么优化这软件,怎么深入操作这软件等。
&大家其实把linux理解成windows就行了,只是换成命令行操作罢了,运维都是要掌握各式各样的软件,就像你用windows办公,是不是要装office,输入法,浏览器,杀毒软件等,其实道理和概念是一样的,不要把linux当作很高端的样子。
&最后,我说说运维的真正核心技能,那些什么安装部署环境等,全部都可以下个文档去对照操作,这些操作别说网管,连开发都可以代替你去做,所以运维一定要掌握有价值的技术,才能体现出价值,要让开发和网管是无法代替到的,下面我说说入门级的:
&监控软件,这个就算是网管和开发都难以掌握,主要是配置复杂,他们没心去弄,而且监控是运维的重要职责,当然还得看公司资源问题,监控常见的有很多,但最常用还是nagios,zabbix,cacti这三款,其实把这三款学熟是件不容易的事,别以为部署出来能配置一些简单的监控项就代表会监控了,绝对不是那么简单的,你看看zabbix就知道了,我曾经做过一个zabbix二次开发的项目维护,那个难度不是一般的高,而且功能又多又难搞,绝不是什么培训机构1-2天就教会的,这是不可能的。
&其次就是shell脚本,这是运维的核心技能,也是必需要掌握的,如果不掌握脚本能力,你就别做了,甚至你根本就做不了,面试官一见你连简单的脚本都写不了,直接不要。
&那有些人就怕了,我的编程能力很差,真的写不出啊。其实谁的编程能力会强,除非是天生头脑特灵活的人,否则其实大家的水平都不会相差太远,脚本比开发语言简单得多了,只是大家没遇到一些案例和需求,所以是写不出来,这个是需要慢慢去练习的。
&核心技能是这2个为主,然后有加分的,例如掌握python和perl和php,当然,对于一个刚入行的人来说,这基本不太可能了,一来是精力没太多,二来是时间没有,这个只能入行后再去学习。
&下面说说运维在工作中需要掌握的技术,注意,这是在工作中掌握的,在学习过程中是比较难掌握的
&一共四大方面:1、排错;2、优化;3、数据库;4、开发语言,第5必须的,就是运维意识,相当重要
&第1点和第2点都需要经验去支持,这个没经验你根本不知道排错和优化是怎么搞,在学校和培训机构各种吹虚里,根本就不可能掌握到,这不是说你安装什么软件时遇到错误能解决那些,那种虽然也叫排错,但只是基础级别,真正的排错是指平台出故障,让你去分析与处理,而出现的错误会各式各样,而且涉及的范围也很广,所以这个是需要经验去支持的。
&第2点优化更是个大问题,基本没经验是弄不了,别以为培训机构会教1-2天优化课程就掌握了这技术,这是不可能的,优化可以说是运维最吃香的技能,但也是最高难度的,因为涉及的知识面很广而且还需要很深入了解,优化是有风险,不是随便在网上搜个文章对着改一下配置文件参数或系统参数就优化了,这是乱来有风险的,甚至怎么样才算有效优化,我也不想说,因为对于没入行的人来说是很难去理解。
&第3点数据库,也是运维加工资的重要核心技能,有些公司的运维可能接触不到数据库,其实运维的加工资技能要么就是开发,要么就是数据库,如果这2点都不会,那么就是个比网管高级点的打杂罢了,相对于数据库来说,运维的操作还是会有的,而且还昔昔相关,一但操作失误又无法回滚,你就真的要滚回家了。
&第4点开发语言,就是上面所说的,要懂PYTHON或PHP,至于学这个干麻,这个我也不好说,要解释又一大段话,只能说现在都存在这个需求,特别是python,你会发现公司招聘时有这个需求,但真正工作时又不需要用,其实不是这个意思,python是自己想用就用,而不是公司要求你用,例如你去完成一个很麻烦的操作,而shell可能无法满足你或者效率很低,那么你就需要用python去满足,这是自己需求使用的,跟公司无关,但就能体现出你的价值了。
&而第5点是每个运维都必须的,意识是很重要,并不是你技术很牛,学的技术很多很熟,就不代表你不需要运维意识,其实领导很看重运维意识的,例如有没有做好备份,权限分配问题,平台测试情况,故障响应时间等,这些都是意识,而不是你学了很多技术自认大牛了,平台发现故障你又没什么大不子,以为很简单的问题喜欢处理就处理,不需要向其它部门反馈等,领导不是看你的技术如何,而是看你的运维意识如何,你没运维意识,技术再牛也没用,只会让其它部门的人跟你不协调。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:14747次
排名:千里之外
转载:12篇
望不穿。梦里木槿花开。唯剩荒芜。终落尽。一曲离伤。流年错。阑珊般锦瑟年华。月黄昏。笑靥如花把酒吟,点绛红唇胭脂瘦。昨夜暖燕江南去,泪撒江面,勾起千般忆。justiceplus 的BLOG
用户名:justiceplus
文章数:54
评论数:612
访问量:606699
注册日期:
阅读量:5863
阅读量:12276
阅读量:405154
阅读量:1093886
51CTO推荐博文
一、本人简介
6年系统工程师、网络工程师经验。2006年开始从事信息技术相关工作,先后参与过校园交换网、公司办公网以及大中型互联网公司的网络架构设计,有丰富的网络实战经验。2008年进入Linux系统运维领域,相继在国内多家著名企业就职,从事网络工程师、系统工程师工作,工作内容涉及大规模商用云计算虚拟化平台运维、网站系统架构、企业网络设计。自行设计和部署过国内多家大型网站的高可用集群。对系统、网络、数据库都有一定层次的理解,多次在国内一些技术论坛和博客中发表技术文档,颇受关注。目前就职于国家电网,未来发展将继续专注于信息技术和信息系统的设计和维护相关工作。
阿里巴巴云计算有限公司、前程无忧、易趣网络
二、现实中的尴尬
本人在长期工作的过程中,经常苦恼于招聘中招不到好的系统和运维人员。首先,基础概念把握不清。很多面试的同学基本概念上欠缺很多,其实我个人的招聘习惯是只要能回答出大部分的基础概念问题,我就会考虑至少能进入下轮。举个例子,搞网络的,能说清楚诸如&什么是广播域,什么是冲突域&这类的问题,搞系统的能说清楚&Linux的启动流程&等这类基本上属于入门必会的问题就差不多了。面试时间很短,如果基础问题搞不清楚,很难让面试者有信心进入拔高的部分,更不要谈给offer了。其次,动手能力欠缺。有时候会给面试者当场一些动手配置的考试,比如现场配置一个常见的服务,很多人不知从何下手,有的配是配出来了,但是遇到问题需要排查故障的时候又傻眼了,不知道通过诸如查看日志等常见的方式来寻找问题所在。这些现实的情况造成了一个很尴尬的局面:用人单位拿着还不错的薪水却招不来人,而更多求职面试者由于达不到企业需求而求职无门。最后,不少面试人员由于缺少实际的经验而不能获得职位。这点是最尴尬的部分:很多求职者不可谓不努力,可能业余能花很多时间去看书、钻研,但是由于Linux系统内容是在太多而不能把握企业实战中所需的要点,这个欠缺造成没有机会进入企业是很遗憾的,因为说白了这是个恶性循环:企业不愿给机会求职者实战中成长,求职业不知道企业需求而没有方向。
三、如何练就自己
首先,勤学苦练是永远不变的原则。我认识一些朋友,当年一起学习Linux,有的很是能花时间研究,有的走马观花。几年后,分晓就鲜明了,有的朋友做技术管理月入两万,有的在机房月薪五千。天道酬勤在技术行业内是一定成立的。
其次,学而不思则罔。学习Linux不能仅仅做到第一条。唯课本,死记硬背是注定不能剥茧化蝶的。平时一定要养成思考的习惯,为什么要这样做才行,为什么不能换一个方式?不同的方式的共同点是什么,能不能归纳总结出原理?
再次,不要孤立的学习Linux。操作系统和网络、开发等学科有着千丝万缕的关系,如果孤立的学习,可能进步较缓。一个现象是,好的LInux工程师往往同时精通某个或某几个其他学科。我个人的建议是,要做一个优秀的Linux,最好也是一名好的网络工程师。
最后,要有自己解决问题的习惯。可以通过讨论、搜索、查看日志等等方式来解决。有不少朋友加我qq,目的就是为了让我帮助解决问题,这点是绝不可行的。原因很简单,你是第一现场人,别人连你的机器都摸不到,怎么能排查问题呢?而且有时候你描述的现象只是个现象而已,比如有的人问:我的服务怎么起不来啊?这种问题谁见到了都没办法理会的。要学会看日志,看错误消息,要会利用google等搜索工具找到解决办法。
四、&招徒&计划
无疑,目前最快的进入这个行业的方式是培训,可商业培训基本上要靠两万的费用,再加上几乎半年的全职没有工资收入,很多人因此而止步实在是非常遗憾。本人计划招收几个愿意钻研的,想参加职业培训又苦于培训费用昂贵而无法成行,希望在Linux运维行业内发展,有吃苦学习的心理准备,有野心希望通过自己的努力在未来的两年内月薪上万的甚至更高的小兄弟,有意者请加关注/u/。原来的qq超级群都已经满了。至于采取什么样的方式我还在构思,我初步计划是远程教学、在线和邮件解答的方式,努力将个人的的所有对Linux的理解分享给大家。
作者注:该文章发表后收到很多朋友的问题,这里先补充:
后面推出来的分享课程是linux系统、运维、网络相关的课程。原则上是从0开始。
&本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:未分类┆阅读(0)┆评论(0)
17:50:31 18:34:42 19:04:13 21:12:46 21:37:10 01:55:35 08:07:00 08:43:45 08:43:46 08:54:42 08:56:13 09:07:07 09:09:52 09:16:00 09:21:08 09:22:13 09:23:01 09:42:20 09:43:34 10:13:52 &&1&
&&页数 ( 1/9 ) &

我要回帖

 

随机推荐