本文关键字:运维面试、面试技术、基础命令、Linux
运维要学习和掌握的技能有很多,在学习的过程中要学会对知识进行分类。
我一般给每个门类的知识分为三类:
比如: 基础命令,常用web服务的日常维护,日常监控等,需要在工作中每天使用
对于这类知识,我的做法是记在自己的有道笔记里的常用知识模块,然后记在自己的脑海里
所有的知识都涉及到记忆,就跟英语一样,你看到的那些学习方法,比如躺着背单词,词根快速记忆法。 是不是都是与背有关, 也就意味着无论方法有多好,我们都要背过。
就连骑自行车,你也背过的,只不过这个骑自行车靠的是肌肉记忆,说到底也是要记住。
2. 重要但是使用频次不高的技术点
对于这类知识点,我一般记在有道笔记或者笔记本里,随用随查,比如zabbix搭建过程,虽然zabbix很常用,但是搭建zabbix这个事情有可能一年到头都遇不到,但他有属于技能栈里比较重要的知识,所以记录在自己随手可查的地方
3. 非重点的知识,未来可能会用
对于这类知识,通常记在博客里,比如某些在公司里不常用的,或者公司产品的替代产品,你现在会了zabbix, 那prometheus,就是未来可能会替代zabbix的产品,在你学习过程中,顺便记录到自己的博客里即可。
你要对自己的知识分类,必然要先形成自己的知识体系,这个知识体系要比你会搭建某一项服务来的重要,因为他时常提醒你要查漏补缺。
19年底,我带着项目经理,做了一次技术调研,调研分了几个部分:
最终根据整理的内容,汇总成了20年的技术体系:
我这里结合之前你们的师哥的面试,整理了12K-15K要求会的技术栈:
1. 负载均衡: LVS, nginx,haproxy
2. 常见服务: ftp,ssh ,mail,IIS,DNS
3. web: tomcat,nginx ,apache, weblogic
4. 数据库: mysql,mariadb
5. 存储: NFS(DRBD+heartbeat+NFS), Hadoop,FastDFS,HDFS,MFS
6. 版本控制: svn ,git
7. 监控: zabbix,,prometheus, open-Falcon
8. 自动化: ansible,rsync+inotify, CMDB
9. NOSQL: redis,memcache,mongodb
10. 虚拟化: docker,k8s,kvm ,vmware,openstack
11. devops方案: jenkins,gitlab,svn, ELK
12. 编程: shell,python, go
13. 安全: rootkit,md5, fail2ban,ddos-defalte
其中:加粗字体的是必须要掌握的,掌握了加粗字体的内容要12K的薪资问题不大,其他未加粗的,了解即可。
前几天有同学问python要掌握到什么程度,这里来界定下: 懂基础语法,学过django即可。最主要的还是要把shell搞的好一点,在linux下还是用shell脚本比较方便。
总结:
在掌握基础的前提上,上述技术栈掌握的越多薪资越高。所谓的基础指的是shell的基础命令
比如:grep,find, awk, sed,的使用
如果要想拿到更高薪资,一定要把基础搞定的前提下,在某一个方向上有一定的深度, 互联网时代,要求每个人都呈T自型发展,在一个方向有了足够深度之后,在往横向扩展。
还有一点最重要: 你可以英语不好,但一定要念对每一个命令的单词。