第一阶段
1.死记硬背
2.多敲命令,多做练习题
grep sed awk
只要你作业认真做了,你有了练习,输出,你就能记住
3.学的东西的确特别多,但是工作里日常用的其实反复就那几个,参数也就那几个
find
-type
-name 支持通配符写法,找文件名
-size
-maxdepth
-perm
-regex 支持正则表达式,找文件名
-path 关于路径的设定
-o 或的关系
-a 并且的关系
痛并快乐着
痛,下了功夫,每天都很认真,拼命的学习,输入知识
快乐,你学到了真功夫,学到了技术
关于学习方法的理解
1.在不知道网站是如何搭建的时候(没做过这件事,会很难,LNMP LAMP,wordpress,discuz)刚开始,没有思路是最难的
2.在尝试实践过后,有了思路过后,后面的工作就是反复的重复,成为熟练工了
3.为什么新人是万事开头难
4.你会发现领导都是不干活,都是写写文案,出方案,写写PPT,年入50万(人家曾经也辛苦过10年时间)
更多的是架构的理解,而不是太多的操作
大家都一样装软件,nginx
修改配置
修改端口的参数
修改网站html根目录的参数
启动
启动玩了之后有日志
你得去看日志,看大量的屏幕的英文输出,是正确启动,还是错误?
主动的思考
第二阶段
1.和第一阶段完全不一样,更多的是理解
(你千万不能死记硬背操作,否则换一个场景,你又不知道自己在干什么)
正则举例
- 提供好了测试数据
- (而是你们开发发给你的
- 或者是线上程序实时产生的日志)
- xxxxxxx
- 在这堆数据里,提取如网址,如qq号
- 你根据老师写的正则(源数据),的确能提取出来
- 写出正确的正则?
- 平日里不断的积累
- 主动的通过自己的思考,想出每一题的解决方案,转化为你所理解的正则符号
- 自己主动再去找更多的练习,不会的和老师交流
2.第二阶段会频繁的使用第一阶段的命令
3.第二阶段大多数是使用软件(ftp,ssh,rsync,nginx),修改配置文件,那配置文件,好几百、几千行,你根本无法背诵
背死在固定的某一行,某些参数
- 理解你要做什么,去修改什么软件的配置文件,修改的参数是什么意思
4.因此第一、理解架构
第二,做好笔记(帮你理解如何修改配置,如何使用软件,的流程)
盖房子一样,流程性很重,以及盖房子之间,cad图纸得画好
(架构图要画好,从前端,到后端,到数据库,之间所有涉及服务,如何去理解,他们之间如何相互调用,通信)
画图,很重要!
比如同样的安装nginx高可用,集群
第一、你先理解原理,心中有了架构思维,这是最重要的
第二、具体nginx集群的安装部署,这其实就很简单了,你笔记做好,以后用到,拿出来复制粘贴即可。
第三、这也是为什么,你会发现,越牛逼的大佬,具体干的活越少,而是写方案,出架构图
,因为这是一个有含金量的东西,
当然,人家架构师也是从普通运维,一步步锻炼,反复安装部署软件几千次,
敲打几万次命令,
心中早已有无数方案,踩过无数的坑,因此才能独当一面,见招拆招。
维护了5万台机器,维护过几十亿的日活
500台机器,维护几万的日活
也是你未来很长一段时间要走的路线..
小白(2月24进班级之前,连电脑都不太会玩)
> 初级运维(很多的命令,服务搭建,配置,权限,等等等。。。。)
> 运维熟练工 (通过不断的学习各种软件,反复的安装yum,编译,修改配置,刚开始是vim手动去修改,sed修改配置文件,启动systemctl,自己写启动脚本,得看进程,看端口,不断的去练习 ps ,netstat,ss,lsof)
学了2月过去, 网站集群,数据库,shell编程,监控
> 高级运维开发
linux+python
> 架构师
linux+python+安全+全栈==架构师
你在教室,每一天的学习强度,上班之后,一下子降低70%
每天的学习,输入大量的知识,自己看看书,
你现在的学习环境,类似于公司的测试环境,机器配置都是最低的,服务安装也是单机的配置也不复杂
小白 > 新人
linux命令会用了 > 初级运维
各种运维工具熟练安装、配置、搭建 > 中高级运维
运维+编程,完成高级运维自动化开发工作 > 高级运维、运维开发
最后、架构师
-实实在在维护过五年以上的linux服务器,从小公司,中型公司,大公司
-解决过太多问题,写过太多笔记、运维博客(博客园等,找运维大佬,写了有10年以上,linux命令基础,到服务部署,到xxx 所有运维都是围绕着k8s去转)
-扛得住大公司的大并发架构,复杂运维架构,在阿里,卷累了,不想卷了
-也能在小公司独当一面,一个人就能扛起公司所有的运维工作
-解决方案架构师(架构在心中,出几个PPT,月入几万,全球技术峰会,全球devops技术大佬会,公司也会有技术分享会,运维,给开发同事分享k8s的技术,linux基础都不会,docker,k8s,jenkins,领导是给钱,打绩效的, 500/课,2000、课)
-高级运维工程师(熟练操作sed、awk、grep、linux、nginx、mysql、jenkins、redis、kafka、zookeeper、hadoop、oracle、docker、kubernetes、prometheus,等一堆工具,维护过千台服务器,维护过日活一亿的网站,起步50k+)
小白 > 工地新人 > 熟练小推车、铁锹 、和水泥 > 学会了工地图纸设计、造价方案 > 学会了和领导喝酒 > 自己成为了当初最讨厌的那个人(老板,月入百万)
1.画图、架构图(一图胜千言、无图言*)
画图工具
https://www.processon.com/
https://excalidraw.com/
2.理解流程、架构先后关系,如软件安装的先后关系,服务启动的先后关系
3.
nginx
mysql
运行了
程序一定会有日志输出,开发,运维,都通过这个日志,去掌握程序运行的状态
因此你后面的学习,工作生涯,会和大量的英文接触。。。。
而且,请你从此安装机器,再也别用中文了
程序崩溃,无法运行,这个信息,毫无意义,你得通过程序反馈的英文报错,日志,去搜索,去理解它的含义
学会看日志
学会看日志
学会看日志,
无论新人,还是20年架构师,干活都TMD是在看日志
(程序运行了,正常,还是故障,只能去看运行日志!)
4. 提问的艺术
傻蛋的提问
- 在吗?
我在
- 有人知道nginx吗?
大量的死群,qq群,微信群,学习交流群
我知道,nginx是一个服务器
- 我遇到问题了
- 服务起不来了
- 什么问题?
- nginx报错了?
- 什么报错?
- 怎么看?
。。。我tm想给你一锤子
============================================================================================
如果有同学加过各种学习群,你就会见到各种这样的提问
有人知道centos吗?
nginx报错了怎么看?
然后群里永远是死群,无人回答,你让人家怎么回。。
正确的提问艺术
前期学习,sed无法提取ip地址,
1.我去看你的源数据
2.看你写的正则表达式
3.看你的sed语法
架构搭建中,没人能简单服务为什么没启动、请求为什么没转发成功,自己要捋顺流程,再告诉别人大概你做了什么事
lnmp的部署
linux 最小化安装,系统的基础依赖会有区别
nginx安装 装在了哪里
mysql
php,python
如
各位大佬们打扰了,我部署LNMP时出错了,我做了如下的操作
1.怎么装的nginx
2.配置文件在哪,日志目录在哪
3.我改了什么操作,才导致报错的 nginx启动不了,看nginx的日志
4.如果你这些流程自己很清晰,其实你几乎已经快找到问题所在了,只不过经验欠缺,可能还无法解决问题
我已经尝试了这些解决方案,但是还是不行(这样大佬知道你做了什么事,是不是方案错了)
1.
2.
3.
以下是nginx的日志报错,有大佬懂的话可以指点以下,感谢
图1
图2
这样的提问,试问,如果是你,你愿不愿意回答一下?是不是好多了?
部署搭建过程,务必记录好步骤,你如果部署出错了,记录下出错的日志,也给记下来
这样你有问题喊超哥来看看,我才知道你做了什么,哪出错了
否则,神仙也不知道你做了什么事,你的问题也无法得到解决,耽误你我时间。
你能遇见的绝大多数错误,搜索引擎上,都会有人曾经搜索过,查询过
也有人发布过类似问题的解决方案,合理利用它,能解决你大部分问题。
做IT避免不了和英语打交道
运维部署,会反复和大量的英文日志打交道,看日志、看日志、要学会怎么看、提取重点部分信息
无论是去翻译,还是去搜索
都要反复积累英文单词的理解、否则一直看不懂日志,那肯定做不好