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

如题所述

第1个回答  2017-12-05
先想想你用python在运维这快用来做什么,然后找对对应的书就行,python无所不能,不用管在某个职位上主要做什么,关键你看python玩的熟练与否。本回答被提问者采纳
第2个回答  2017-08-13
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),自己再写一些代码,搞定它。代码写久了,你就称为运维自动化。。。
相似回答