python 之运维
2015-11-28 10:32
399 查看
好久没来了,自从开学以来,似乎一直没心情记录自己的东西!最近有一nginx负载均衡的项目。其中一部分涉及到对服务器状态的监控,主要涉及有cpu,内存,挂载点,进程,网卡等信息的监控。原来没有学过python,自己用了五天多点的时间学了一些基础,然后就开始参与项目的开发!起初觉得这个比较容易,因为网上的例子是在是很多!但在敲代码的时候因为自己的固执走了很多的弯路!下面分享我的一些经历;
先是看了《python基础教程》第二版前十章然后在唐雪峰老师的网站上学了一些基础,个人觉得如果要细学还是要看书的!因为唐雪峰老师的讲的过于简洁,但很容易上手!
个人比较固执,不希望用别人的包,所以故事就这样开始了,
cpu信息主要通过以下几个文件获取:
/proc/cpuinfo
/proc/stat
然后通过简单的处理即可得到cpu数量,类型,user占用率,sys占用率,空闲率等;
内存用到的文件是:
/proc/meminfo
获得内存的大小,使用量,使用率;
网卡信息获取用到的东西:
主要是ifcongfig命令(个人觉得最好不要用命令,但是我不想用别人的包,再加上时间问题,还是选择了它)
/proc/net/dev 这个文件可以计算网卡的io信息
进程就主要用的是:ps命令了!(T-T)
挂载点:
/proc/partitions
/proc/diskstats
因为涉及到io所以我还是妥协用了别人的包,psutil(我很忌讳这个,因为我的代码用这个写要减少好多T-T)
但是用这个包有个问题就是它给出的io信息不能和它给的挂载点信息相匹配!这就把我给难倒了,于是去看看 了看它的源码,然而它也仅仅是读取了/proc/disksatt
文件中的内容(因为文件中有如dm-*的东西,不能明确其代表的是哪个具体的过载点,然后在网上细查过后发现可以用iostat等命令区别,所以就去看看了iostat的源码,发现它是通过匹配每个挂载点的主副设备号来区别的,然后问题又来了,有些挂载点的磁盘驱动是个软件接文件,不能直接获取他的主副设备号,必须找到其连接文件才可以查看。个人人解决方案!)
源码:链接: http://pan.baidu.com/s/1qWxjdaG 密码: 929k
先是看了《python基础教程》第二版前十章然后在唐雪峰老师的网站上学了一些基础,个人觉得如果要细学还是要看书的!因为唐雪峰老师的讲的过于简洁,但很容易上手!
个人比较固执,不希望用别人的包,所以故事就这样开始了,
cpu信息主要通过以下几个文件获取:
/proc/cpuinfo
/proc/stat
然后通过简单的处理即可得到cpu数量,类型,user占用率,sys占用率,空闲率等;
内存用到的文件是:
/proc/meminfo
获得内存的大小,使用量,使用率;
网卡信息获取用到的东西:
主要是ifcongfig命令(个人觉得最好不要用命令,但是我不想用别人的包,再加上时间问题,还是选择了它)
/proc/net/dev 这个文件可以计算网卡的io信息
进程就主要用的是:ps命令了!(T-T)
挂载点:
/proc/partitions
/proc/diskstats
因为涉及到io所以我还是妥协用了别人的包,psutil(我很忌讳这个,因为我的代码用这个写要减少好多T-T)
但是用这个包有个问题就是它给出的io信息不能和它给的挂载点信息相匹配!这就把我给难倒了,于是去看看 了看它的源码,然而它也仅仅是读取了/proc/disksatt
文件中的内容(因为文件中有如dm-*的东西,不能明确其代表的是哪个具体的过载点,然后在网上细查过后发现可以用iostat等命令区别,所以就去看看了iostat的源码,发现它是通过匹配每个挂载点的主副设备号来区别的,然后问题又来了,有些挂载点的磁盘驱动是个软件接文件,不能直接获取他的主副设备号,必须找到其连接文件才可以查看。个人人解决方案!)
源码:链接: http://pan.baidu.com/s/1qWxjdaG 密码: 929k
相关文章推荐
- 5.1.6 tzinfo对象
- Python篇----面向对象程序设计(三)(继承篇)
- Python篇----面向对象程序设计(二)(属性和方法篇)
- Python2.7下载微信公众号文章的图片(二)
- Python实用小技巧
- Stackless Python 并发式编程介绍
- python3编码
- python第三方库点滴
- 【转】Python包管理工具
- python 第一天作业
- 用python开启简单服务器
- Python 面相对象 —— 类的三大成员
- python中%r和%s的区别
- [python]错误检测及异常处理try-except
- Python-学习笔记(一)——环境配置+IDE搭建(WingIDE)
- python基础概念总结
- Python基础——NaN(Not a Number)
- Python机器学习——概念及其物理解释
- python之sh,更加人性化的subprocess
- 【Python】Mysql数据库操作类