linux系统运维人员如何学习python?

  • 回答 (6)
  • 关注 (2)
  • 查看 (231)

对于linux系统运维而言,python可以说是必会的语言,如今随着云计算、人工智能等技术的发展,python学习越发火爆。请问,对于linux系统运维人员来说,如何学好python呢?

农民工求助农民工求助提问于
冷眼看世界你好!各位大神!回答于

linux运维中通常喜欢使用shell脚本,但shell脚本是一步步执行结果,没有对整个代码的预判,对于中间运行出错后很难处理。所以python就闯入运维人员的眼中。

python中有很多module对于运维人员很友好的。

最基本的有os模块,无论是监控cpu使用情况:

#!/magedu/bin/python
import os
def getAllitems(host, oid):
       sn1 = os.popen('snmpwalk -v 2c -c public ' + host + ' ' + oid + '|grep Raw|grep Cpu|grep -v Kernel').read().split('\n')[:-1]
       return sn1
def getDate(host):
       items = getAllitems(host, '.1.3.6.1.4.1.2021.11')
       date = []
       rate = []
       cpu_total = 0
       #us = us+ni, sy = sy + irq + sirq
       for item in items:
               float_item = float(item.split(' ')[3])
               cpu_total += float_item
               if item == items[0]:
date.append(float(item.split(' ')[3]) + float(items[1].split(' ')[3]))
               elif item == item[2]:
                       date.append(float(item.split(' ')[3] + items[5].split(' ')[3] + items[6].split(' ')[3]))
               else:
                       date.append(float_item)
       #calculate cpu usage percentage
       for item in date:
               rate.append((item/cpu_total)*100)
       mean = ['%us','%ni','%sy','%id','%wa','%cpu_irq','%cpu_sIRQ']
       #calculate cpu usage percentage
       result = map(None,rate,mean)
       return result
代码来源:https://zhuanlan.zhihu.com/p/27903397

还是网卡流量监测:

#!/magedu/bin/python
import re
import os
#get SNMP-MIB2 of the devices
def getAllitems(host,oid):
       sn1 = os.popen('snmpwalk -v 2c -c public ' + host + ' ' + oid).read().split('\n')[:-1]
       return sn1
#get network device
def getDevices(host):
       device_mib = getAllitems(host,'RFC1213-MIB::ifDescr')
       device_list = []
       for item in device_mib:
               if re.search('eth',item):
                       device_list.append(item.split(':')[3].strip())
       return device_list
#get network date
def getDate(host,oid):
       date_mib = getAllitems(host,oid)[1:]
       date = []
       for item in date_mib:
               byte = float(item.split(':')[3].strip())
               date.append(str(round(byte/1024,2)) + ' KB')
       return date
链接:https://zhuanlan.zhihu.com/p/27903397

另外还有内存占用情况,文件目录的查找新建删除操作都是os模块的用武之地。

另外就是urllib、urllib2模块,对于判断网页请求响应、抓取web页面都是必会的。

至于更多的使用模块还有time、random、sys、numpy等。

以上只是针对运维中的问题列举了常用的模块,

如果楼主想系统学习Python的话,还建议买一本好的教材,一边读一边写代码,这样才能稳步提高编程能力。

初入大前端回答于

linux运维要学习python?

那您准备好python数据结构和算法了吗?

首先楼主可以从简单的入门教材可以看起:网上有很多,视频的话推荐小甲鱼python教学视频

python的数据结构其实并不复杂,列表元组集合,其它的队列链表树,map虽说有些库但最好自己写一下。

至于python算法?

最起码的遍历,查询和排序算法需要掌握的。

最后,不要忘了,面向过程和面向对象的编程思维。

整个学习的过程都需要好的范例支持,楼主不要小瞧那些demo,都是很好的编程范式。

当然,运维人员自然需要考虑将shell脚本放在python里边跑一跑的了,只有这样,才能让自己的运维工作升级成自动化运维。

一步回答于
林岑影let bio = '这家伙真懒, 什么都没留下...'回答于

我觉得Linux运维人员也应该从基础语法开始学习,打好基础。但是到了高级部分可以选择偏向于脚本、运维方向进行学习。

独钓寒江雪_Ly站在巨人肩膀上的矮子回答于
TCS-F回答于

有什么学习文档,或者精品学习视频连接发一下?

扫码关注云+社区

领取腾讯云代金券