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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习Python在Linux运维上的应用应该看哪些书 啥样的学习路线相关的知识,希望对你有一定的参考价值。

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

Linux运维常用命令有哪些?Linux学习教程

  作为一名Linux运维工程师,想要在工作中游刃有余,这个时候我们就需要掌握一些基本的操作命令,之前已经为大家介绍了很多,今天我们再来看看Linux还有哪些命令是我们需要掌握的。

  系统权限及用户授权相关命令(4个)

  chmod:改变文件或目录权限。

  chown:改变文件或目录的属主和属组。

  chgrp:更改文件用户组。

  umask:显示或设置权限掩码。

  查看系统用户登陆信息的命令(7个)

  whoami:显示当前有效的用户名称,相当于执行id -un命令。

  who:显示目前登录系统的用户信息。

  w:显示已经登陆系统的用户列表,并显示用户正在执行的指令。

  last:显示登入系统的用户。

  lastlog:显示系统中所有用户最近一次登录信息。

  users:显示当前登录系统的所有用户的用户列表。

  finger:查找并显示用户信息。

  内置命令及其它(19个)

  echo:打印变量,或直接输出指定的字符串

  printf:将结果格式化输出到标准输出。

  rpm:管理rpm包的命令。

  yum:自动化简单化地管理rpm包的命令。

  watch:周期性的执行给定的命令,并将命令的输出以全屏方式显示。

  alias:设置系统别名。

  unalias:取消系统别名。

  date:查看或设置系统时间。

  clear:清除屏幕,简称清屏。

  history:查看命令执行的历史纪录。

  eject:弹出光驱。

  time:计算命令执行时间。

  nc:功能强大的网络工具。

  xargs:将标准输入转换成命令行参数。

  exec:调用并执行指令的命令。

  export:设置或者显示环境变量。

  unset:删除变量或函数。

  type:用于判断另外一个命令是否是内置命令。

  bc:命令行科学计算器

  系统管理与性能监视命令(9个)

  chkconfig:管理Linux系统开机启动项。

  vmstat:虚拟内存统计。

  mpstat:显示各个可用CPU的状态统计。

  iostat:统计系统IO。

  sar:全面地获取系统的CPU、运行队列、磁盘 I/O、分页(交换区)、内存、 CPU中断和网络等性能数据。

  ipcs:用于报告Linux中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息。

  ipcrm:用来删除一个或更多的消息队列、信号量集或者共享内存标识。

  strace:用于诊断、调试Linux用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。

  ltrace:命令会跟踪进程的库函数调用,它会显现出哪个库函数被调用。

  关机/重启/注销和查看系统信息的命令(6个)

  shutdown:关机。

  halt:关机。

  poweroff:关闭电源。

  logout:退出当前登录的Shell。

  exit:退出当前登录的Shell。

  Ctrl+d:退出当前登录的Shell的快捷键。

  进程管理相关命令(15个)

  bg:将一个在后台暂停的命令,变成继续执行 (在后台执行)。

  fg:将后台中的命令调至前台继续运行。

  jobs:查看当前有多少在后台运行的命令。

  kill:终止进程。

  killall:通过进程名终止进程。

  pkill:通过进程名终止进程。

  crontab:定时任务命令。

  ps:显示进程的快照。

  pstree:树形显示进程。

  nice/renice:调整程序运行的优先级。

  nohup:忽略挂起信号运行指定的命令。

  pgrep:查找匹配条件的进程。

  runlevel:查看系统当前运行级别。

  init:切换运行级别。

  service:启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。

以上是关于学习Python在Linux运维上的应用应该看哪些书 啥样的学习路线的主要内容,如果未能解决你的问题,请参考以下文章

学Python 应该看哪些书籍

Linux运维常用命令有哪些?Linux学习教程

2020年python有哪些就业方向?应该如何选择?

Linux运维web集群需要了解什么内容?

学习Linux运维的个人笔记:Linux基本介绍

Linux运维需要懂什么web集群架构知识?