学习Python在Linux运维上的应用应该看哪些书 什么样的学习路线

作者&投稿:烛蓉 (若有异议请与网页底部的电邮联系)
想从事运维开发,有什么好的自学 CentOS 和 Python 学习方案~

op,也就是运维,和python关系很深,我相信很多运维刚入门的朋友都觉得python高大上,然后就边学运维边学python,在这里我来梳理一下
运维 和 运维开发 是两个方向,运维是运维,运维开发,说白了就是开发,那运维为什么和python相关性大呢?因为运维在做到一定程度,开源工具肯定是满足不了公司需求的。这个时候就的运维需要python了,而很多时候,像那些小公司,也在招聘简历上面写着需要会python,我说的小公司是针对那种开源软件就能完全满足的公司,根本就不需要什么自动化运维平台,也不需要针对现有的开源产品做二次开发,招一个会python的运维过来,除了多帮你们公司写几个后面来的运维维护不了python脚本,其他的还能干啥呢?而对运维来说,先会运维,然后就是我blog里面介绍的那些技术,等我blog里面的知识都会了的时候,差不多也能算是一个中高级运维拉,这个时候才到面临开源软件实现不了的问题的时候。你一个初级运维,那么多开源软件你还不会,你学个python顶个毛用啊。当然我指的是运维路线,并不指运维开发路线。当你开源软件都会了,然后遇到了你解决不了的问题。这个时候才是需要你使用python解决的时候,其实如果拉开比喻就好了,如果你想做CEO。而你现在是普通员工,那么你现在需要做的不是看《CEO法制100条》(瞎扯的),而是《如何成为一个好员工》。如果这样你还不能理解,那很简单。等你明确知道你学了python的应用场景了(这个时候估计你也是一个中高运维了),那么你就可以着手学python了。
为什么要将运维和python学习分开呢?
1.初中级运维是用不到python的,也就是说你学了没经验拿,这个时候反倒不如钻研shell(当然shell包括awk,sed,grep等。),对于很多内行人来说,shell水平才是区分初中高运维的分水岭,python在中级阶段算锦上添花,在初级阶段......那我就不描叙了。
2.用全部精力去钻研一个点,运维这块的内容真的很多,单独只钻研运维爬到高级运维都不知道要多久,更不要说拿出很大部分精力去做对现阶段无用功的python了。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
当然python(或者其他语言,py对数据在数据处理上面比较强大)对于高级运维来说是必须具备的能力,你做到了高级运维,如果在小公司,那妥妥的可以担任架构师或者运维总监(经理,管理,各种各样的头衔都有),但是你要是进入大公司,做运维总监就必须得把开发和运维结合起来就像蘑菇街运维经理分享的这个经验来看,其中大部分我都能看懂,但是还是有一些是必须有一定开发经验才能对其很熟悉的内容我是懵懵懂懂的。而且像自动化运维框架,自行开发的监控程序的监控点,性能指标等等。重要的东西用图来展示,虽然说这个图不是我画的。就像蘑菇街运维经理分享的这个经验来看,其中大部分我都能看懂,但是还是有一些是必须有一定开发经验才能对其很熟悉的内容我是懵懵懂懂的。而且像自动化运维框架,自行开发的监控程序的监控点,性能指标等等。重要的东西用图来展示,虽然说这个图不是我画的。
上面这幅图我就不做介绍了,我对其了解也不深。你认为你如果就会运维,没有深厚的开发经验,你能做到上面这幅图所展示的实现?上面这幅图我就不做介绍了,我对其了解也不深。你认为你如果就会运维,没有深厚的开发经验,你能做到上面这幅图所展示的实现?

Python对日常运维工作来说比Perl和Bash都弱。Python做Web开发也比PHP麻烦很多。我个人的感觉Python更像Java,不适合与Perl/Bash比较。
我个人常用的运维工具是Bash为主,Python主要用来做一些算法演算。因为我的日常维护任务以文件系统维护为主,比较语言要结合场景。
绝大部分的应用需求,所有语言都能完成,但是难易程度不同,选择语言要看开发者的熟练程度和需求的复杂程度。
如果只是“grep”需求,你选Bash执行grep最简单,如果稍复杂就用awk,再复杂就用perl。用更通用的语言就是费力不讨好。
如果是个矩阵计算需求,perl的数组能把你折腾死,bash的管道能把机器折腾死。
我下面这个观点一定会有争议(尤其是PHPer),我倾向于把高级语言分成三类:
1) 底层的C/C++
这是可以写操作系统,操作硬件的。可以解决一切问题,但是绝大多数互联网项目不应该用。
2) 中性的Java/Python/Ruby/.NET系列
这是做项目的主要语言,平衡开发效率和执行效率。没有明显的亮点,亦没有明显的缺点。
3) 特长的PHP/Bash/Perl
在某些特定领域,应该选择这些有特长的语言。随着需求越来越全面,语言的短板越用越多,应该控制扩散。

先想想你用python在运维这快用来做什么,然后找对对应的书就行,python无所不能,不用管在某个职位上主要做什么,关键你看python玩的熟练与否。

Python岗位有哪些呢?主要的岗位有这些:
Python全栈开发工程师(10k-20K)
Python运维开发工程师(15k-20K)
Python高级开发工程师(15k-30K)
Python大数据工程师(15K-30K)
Python机器学习工程师(15k-30K)
Python架构师(20k-40k)
目前应用最多的:全栈开发、数据分析、运维开发,大家知道他们分别的要求是什么吗?
我们来看三个岗位要求:
岗位1:任职要求
1.计算机、软件相关专业本科或以上学历,3年以上工作经验;
2.熟悉python、JS开发语言;
3.具有MySQL数据库设计与优化能力,熟悉mongoDB、mc、redis等一种以上;
4.熟悉Linux/Unix,能进行shell编程;
5.具有良好的学习能力,时间和流程意识,沟通能力、团队合作
岗位定义:Python运维开发
岗位2:职位要求
1,熟悉 Python 编程;
2,熟悉 Linux 系统;
3,熟悉 shell 编程;
4,了解 django/web.py/flask 框架一种及以上;
5,有一定的 Web 后端开发经验,熟悉前后端分离的开发模式
熟悉关系型数据库的使用与基本设计优化方法,了解常见的 NoSQL 数据库如MongoDB, Redis等;
6,良好的编码风格及测试习惯
加分项:
在 GitHub 上有开源项目
岗位定义:Python全栈开发
岗位3:任职资格
1、具有python开发数据处理软件的经验;
2、精通Python,掌握numpy,scipy,matplotlib,pandas等数据处理方面常用的第三方python库;
3、熟悉至少一种Sql数据库 (mysql/ sqlserver/oracle);
4、热爱编程、具有良好的代码风格;
5、做事具有条理性,具有良好的自学能力、分析问题以及解决问题的能力。
岗位定义:Python数据分析
那么,大家来看看,这三个岗位基本要求里面,有哪些共性和不同?以及学习什么内容:
第一层:python的基本语法和标准库
既然你要会python开发,那么语法基础和库是最基本的。
第二层:Linux基础
全栈和运维涉及linux服务器的操作,那需要shell编程和linux基础操作的基础能力。数据分析其实就没有这一层,涉及是数据采集,也就是爬虫。全栈对linux基础要求少一些,而运维需要更多,还需要一些DNS/DHCP之类的,很多企业也需要一定的运维工作年限。
第三层:数据库操作
数据库操作:SQL、Nosql,数据的储存和处理,就是常见的增删改查。
第四层:web前端
前端的实现,包括web前端技能,了解或熟悉HTML、CSS、Javascript,Bootstrap,jq,nodejs。全栈就不说了,运维开发涉及到可视化的界面。
第五层:基础python的框架和库
基础python的框架和库做各种实现,需要开发一个网站或者做一个自动化运维监控,数据分析师基于一些可视化的库和数据分析的库。
第六层:算法设计和求职准备
学一个技术和进阶的核心是算法设计,最重要的是:求职
——————————
来说说主要的几个在Linux运维中的应用吧:
第一、Python开发的jumpserver跳板机
jumpserver跳板机是一款由Python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能。基于ssh协议来管理,客户端无需安装agent。
企业主要用于解决:可视化安全管理
特点:完全开源,GPL授权
Python编写,容易再次开发
实现了跳板机基本功能:认证、授权、审计 ,集成了Ansible,批量命令等、支持WebTerminal
Bootstrap编写,界面美观 ,自动收集硬件信息 ,录像回放 、命令搜索 、实时监控 、批量上传下载
第二:Python开发的Magedu分布式监控系统
以自动化运维视角为出发点,自动化功能、监控告警、性能调优,结合saltstack实现自动化配置管理等内容进行了全方位的深入剖析。
企业主要用于解决:自动化监控常用系统服务、应用、网络设备等
监控系统需求讨论:
监控常用系统服务、应用、网络设备等?一台主机上可监控多个不同服务、不同服务的监控间隔可不同?同一个服务在不同主机上的监控间隔、报警阈值可不同?告警级别?数据可视化,如何做出简洁美观的用户界面?如何实现单机支持5000+机器监控需求?采取何种通信方式?主动、被动?
第三:Python开发的Magedu的CMDB
cmdb的开发需要包含三部分功能:采集硬件数据、API、页面管理。
企业主要用于解决:自动化管理笔记本、路由器等常见设备的日常使用
执行服务的过程如下:服务器的客户端采集硬件数据,然后将硬件信息发送到API,API负责将获取到的数据保存到数据库中,后台管理程序负责对服务器信息的配置和展示。
第四:Python开发的任务调度系统
Python任务调度系统的multiprocessing模块不但支持多进程,其中managers子模块还支持把多进程分布到多台机器上。
企业主要用于解决:自动化把一个服务进程分布到其他多个机器的多个进程中
一个服务进程可以作为调度者,将任务分布到其他多个机器的多个进程中,依靠网络通信。想到这,就在想是不是可以使用此模块来实现一个简单的作业调度系统。
第五:Python运维流程系统
使用python语言编写的调度和监控工作流的平台内部用来创建、监控和调整数据管道。任何工作流都可以在这个使用Python来编写的平台上运行。
企业主要用于解决:自动化创建、监控和调整数据管道
是一种允许工作流开发人员轻松创建、维护和周期性地调度运行工作流(即有向无环图或成为DAGs)的工具。这些工作流包括了如数据存储、增长分析、Email发送、A/B测试等等这些跨越多部门的用例。
这个平台拥有和 Hive、Presto、MySQL、HDFS、Postgres和S3交互的能力,并且提供了钩子使得系统拥有很好地扩展性。除了一个命令行界面,该工具还提供了一个基于Web的用户界面让您可以可视化管道的依赖关系、监控进度、触发任务等。
——————————
以上为常见的五种应用,请指点!
Python自动化主要帮助企业解决日常繁杂的工作事务,数据化、可视化的监控日常的业务运行情况。
欢迎一起交流和补充!

编辑于 2017-07-24
1添加评论
分享
收藏感谢收起

绅士喵

这个点刷知乎的肯定在偷懒~
1 人赞同了该回答
三个字,打基础。
学好Python以后,最好接触下Unix编程方面的东西。说到底,很多运维Linux功底很差,虽然功底差但是不表示解决不了问题。但是真的碰上一些核心问题,凭只会“玩玩”Linux的运维而言真是望尘莫及的。愿意接触编程语言给了你一个良好的开端,让你有了深入Linux的底气和资本。
Unix范畴的很多东西不光只是C能做的,Python也有良好的API封装。
发布于 2016-07-25
1添加评论
分享
收藏感谢

黄哥

黄哥Python、和你同在。
4 人赞同了该回答

请看看
1、先通过Python学会编程,达到自己能写代码解决问题的能力。
如何训练自己的编程思路
如何训练自己的编程思路 - 黄哥的文章 - 知乎专栏
部分免费Python免费视频
部分免费Python免费视频 - 通过python学会编程 - 知乎专栏
Linux运维人员如何学习python编程
Linux运维人员如何学习python编程 - 黄哥的文章 - 知乎专栏
2、将运维中shell写的脚本,全部改为Python 代码来完成。
3、运维中有很多需求,做需求分析,切分任务,找现成的库(搜google),自己再写一些代码,搞定它。代码写久了,你就称为运维自动化。。。


学python想自学,需要买什么书或看什么教学视频
如果基础比较差、学习能力较弱的情况下,自学是非常浪费时间的,很容易事半功倍;而且学习Python单纯的看书或者看视频都是不够的,还需要有大型的项目练手,积累项目经验,才可以起到关键的作用;不过个人建议可以先在B站或者哔哩哔哩上看看Python的视频教程,在决定自己是否要学习,该怎么学习。

有没有适合新手练习 Python 的做题类网站?
寻找Python新手的实战乐园?这里有你的答案!为了帮助初学者扎实基础,提升Python编程技能,我们精心挑选了一系列适合新手的实战做题网站。每个平台都以其独特的方式,让你在轻松愉快的环境中逐步掌握编程技巧。1. LeetCode (https:\/\/leetcode-cn.com\/problemset\/all) - 作为算法题库的佼佼者,LeetCode...

学Python好找工作吗
首先,Python是一门应用广泛的编程语言,被广泛应用于数据分析、Web开发、人工智能和机器学习等领域。因此,学Python有多个就业方向可供选择。然而,Python的应用范围虽然广泛,但就业机会也与行业发展情况密切相关。例如,在数据分析领域,随着数据科学和分析需求的增加,Python的就业机会也在不断增加。其次,...

Pytho怎样自学?
好处是一开始就明确了学习的目的:Web建站。所以我的学习方案基本就是通过做项目学习,哪里不懂就解决哪里,边做边学习,不断推进。另外,由于知道很多成功的网站在用Python做服务器开发,比如知乎,所以我就自然选择了Python。于是我就开始了我充满着挫败感和成就感的编程之路……从8月到12月的四个月里...

零基础学python大约需要多久
Python学习路线。第一阶段Python基础与Linux数据库。这是Python的入门阶段,也是帮助零基础学员打好基础的重要阶段。你需要掌握Python基本语法规则及变量、逻辑控制、内置数据结构、文件操作、高级函数、模块、常用标准库模块、函数、异常处理、MySQL使用、协程等知识点。学习目标:掌握Python基础语法,具备基础的...

python脚本学习过程推荐
学习流程:一:打好基础 1.找到合适的入门书籍(推荐Python核心编程2、Dive into Python),大致读一次,循环啊判断啊,常用类啊,搞懂(太难的跳过)2.勤练习python习题(python核心编程2有大量的课后练习题)3.加入Python讨论群,不懂就问 4.写python学习总结性的博客 二:开始使用Python做自己的一些...

有什么网站可以找到Python编程的练习题吗?
Exercism: www.exercism.io Exercism是一个针对多种语言提供编程练习的网站,包括Python、JavaScript、Ruby等。该网站提供一系列正版公共程序练习项目,可以在其平台内接收反馈和互相学习交流,也用户可以贡献自己的代码实现方式。总的来说,这些网站可以有效帮助没有系统学习经验的开发者,从实践与挑战中快速...

python学习
我主张看英文资料,也就是要掌握学习中的第一手资料;3)此外,在《python简明教程》也推荐了大量书籍,都很不错,且大多可以免费获得,可以参考一下。学习python,很重要的一个方法是要学会看文档,以linux环境为例,在终端下键入“python”回车;键入“help(list)”,就会显示list所有函数的用法;如...

Python学习,有哪些方向可以选择
3、Python数据分析 如今公司的产品都建立在对用户的分析之上,也就是所有的商业公司都需要这样一个角色,学会了爬虫,便有了数据来源,运用这些数据以及相应的爬虫库和excel表格,就可以进行简单的数据分析。4、Python Web网站工程师 Web一直都是不可忽视的存在,利用Python的框架做一些页面精美的网站,...

Python好学吗?有用吗?
4、Python的语法设计非常优秀,思想也比较现代,可以更快的理解现代编程语言的一些思想。5、Python的内置数据结构清晰好用,优秀的代码很多。6、Python免费的书很多,可以找到许多资料啃。同时社区比较集中,有问题可以向高手问。7、Python在其他领域,比如科学计算等等有广泛的运用,对于学一门语言作为工具来...

吴中区13892468026: Python 在 Linux 系统运维中都有哪些应用 -
栾融伸筋: python在系统管理上的优势在与强大的开发能力和完整的工具链.python的工程开发能力强大,远强于各种shell和perl.易读易写,兼具面向对象和函数式风格,还有不错元编程能力.通过系统化的将各种管理工具结合,对上述的各类工具进行...

吴中区13892468026: Python脚本在Linux上怎么运行 -
栾融伸筋: 有两种方式:1、直接使用python xxxx.py执行.其中python可以写成python的绝对路径.使用which python进行查询.2、在文件的头部(第一行)写上#!/usr/bin/python2.7,这个地方使用python的绝对路径,就是上面用which python查询来的结果.然后在外面就可以使用./xxx.py执行了.因为在linux中,python啊shell这些程序都是普通的文本格式,都需要一种程序去解释执行它.要么调用的时候指定,要么在文件头指定,另外你是感兴趣的话可以看下刘遄老师写的《Linux就该这么学》作为入门的书籍,觉得不错的话采纳下哦~

吴中区13892468026: 学习Python就业有哪l些方向?发展前景如何?
栾融伸筋: 就业方向一:Linux运维Linux运维是必须而且一定要掌握Python语言,Python是一门非常NB的编程语言,它可以满足Linux运维工程师的工作需求提升效率,总而提升自己的能力,运维工程师需要自己独立开发一个完整的自动化系统时,这个时...

吴中区13892468026: linux 终端 运行 python -
栾融伸筋: Linux终端中的操作均是使用命令行来进行的.因此,对于小白来说,熟记几个基本的命令行和使用方法能够较快的在Linux命令行环境中将python用起来. 打开命令行窗口 打开命令行窗口的快捷键如下: Ctrl + Alt + t 关闭名命令行窗口 关闭命令...

吴中区13892468026: Python 适合在windows还是linux环境下? -
栾融伸筋: Python语言是亲Linux系统的,同时大部分Linux系统都默认安装了python.其实两个环境均可以安装python并执行代码.由于web项目几乎是面向于服务器开发,无论是Django 还是Flask框架,最终都要部署到服务器端,同时开发调试的过程也是需要基于服务器环境,如Mysql nginx 、 fastdfs等这些环境,所以需要依赖于linux环境.而windows环境下也可以进行开发,如果只需要开发简单项目,可以直接使用windows环境,后台项目时尽可能使用linux环境进行开发.有关python的配置问题,建议到黑马程序员论坛查看一下配置的文章,里面有很好的解释和说明.以及配置方法.

吴中区13892468026: 零基础学习python需要直接使用linux吗 -
栾融伸筋: 关键是看你需要用python干什么,是搞自动化运维,那就需要linux,初学者可以在windows下就可以学习了.入门后再根据需要考虑是否在linux下使用.

吴中区13892468026: 请问学习Python就业前景如何? -
栾融伸筋: 最近两年来Python编程一直颇受关注,今天动力节点给大家聊一下学习Python语言可以发展哪些方向,以及Python语言在未来的发展前景. 首先要说的是发展前景一:Linux运维 Linux运维是必须而且一定要掌握Python语言,Python是一门非常...

吴中区13892468026: 学习Python在Linux运维上的应用应该看哪些书 什么样的学习路线 -
栾融伸筋: 其实linux运维最好还是bash,如果py的话主要是学好py基础,比如文件操作,进程管理等,具体库上就是urllib、os、threading等.

吴中区13892468026: linux 运维 要学 perl python 么 -
栾融伸筋: 作为一个多年的运维人员,负责任地告诉你,不学perl或者python是可以做运维的,但仅仅是一个看一看监控面板,按一按电源按钮,执行一下别人的代码,写一写报告的二流子运维.一个真正胜任的linux运维人员,至少要精通shell并熟练掌握perl或者python中的一种,还至少要看得懂C(linux源码总要看得懂吧.)更进阶的话,需要对内核有所变动的话,对C的要求就更高了.perl和python也有其他的替代品,ruby什么的,脚本语言掌握一种,其他的就触类旁通了.

吴中区13892468026: python可以用于linux吗 -
栾融伸筋: Python(蟒蛇)是一种动态解释型的编程语言.Python可以在Windows、UNIX、MAC等多种操作系统上使用,也可以在Java、.NET开发平台上使用.

你可能想看的相关专题

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网