您的位置:首页 > 编程语言 > Python开发

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: