python监控服务器信息

简介:

本文转载自http://www.linuxtone.org/thread-29256-1-1.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# coding: utf-8
#by_wangyi
#by: QQ917611
#QQ群:251289157
import  psutil
import  time
import  os
import  sys
import  re
  
stats  =  [ 0 , 1 ]
stoptimes  =  2
  
if  len (sys.argv) >  1 :
     interface  =  sys.argv[ 1 ]
else :
     interface  =  'eth0'
  
  
class  Monitor:
  
     def  __init__( self ,user_uid,stoptime):
         self .user_uid  =  user_uid
         self .stoptime  =  stoptime
  
         if  user_uid  = =  0 :
             print  "请使用root用户运行此脚本"
             exit()
  
     def  meminfo( self ,used_vm,free_vm,buffers,cached):
  
         total  =  psutil.virtual_memory().total  /  1024  /  1024
         used  =  used_vm  -  (buffers  +  cached )
         free  =  total  -  used
  
         print  "total mem: %sM"  % total
         print  "used mem: %sM"  % used
         print  "free mem: %sM"  % free
  
     def  diskinfo( self ):
         list  =  []
         for  in  psutil.disk_partitions():
             list .append(i[ 1 ])
  
         for  in  range ( len ( list )):
             total =  "%-15s 分区\t total: %s"  % ( list [k] , psutil.disk_usage( list [k]).total  /  1024  /  1024  /  1024 )
             used  =  "used: %s"  % (psutil.disk_usage( list [k]).used  /  1024  /  1024  /  1024 )
             free  =  "free: %s"  % (psutil.disk_usage( list [k]).free  /  1024  /  1024  /  1024 )
             print  "%sG\t%sG\t%sG"  % (total,used,free)
  
     def  cpuinfo( self ):
         with  open ( '/proc/loadavg' ) as f:
             loadavg  =  f.read()
             print  "5分钟 cpu load: %s"  % (loadavg.split( )[ 0 ])
             print  "10分钟cpu load: %s"  % (loadavg.split( )[ 1 ])
             print  "15分钟cpu load: %s"  % (loadavg.split( )[ 2 ])
             print  "当前运行 proc: %s"  % (loadavg.split()[ 3 ].split( '/' )[ 0 ])
             print  "最后运行 pid: %s"  % (loadavg.split( )[ 4 ])
             print  '当前cpu %s'  % (psutil.cpu_percent())
  
     def  flowinfo( self ):
         =  open ( '/proc/net/dev' , 'r' ).readlines()
         for  in  f:
             if  re.search(interface,i):
                 rx  =  i.split( ':' )[ 1 ].split()[ 0 ]
                 tx  =  i.split()[ 8 ]
                 stats[ 0 =  rx
                 stats[ 1 =  tx
  
used_vm  =  psutil.virtual_memory().used  /  1024  /  1024
free_vm  =  psutil.virtual_memory().free  /  1024  /  1024
buffers  =  psutil.virtual_memory().buffers  /  1024  /  1024
cached  =  psutil.virtual_memory().cached  /  1024  /  1024
  
if  __name__  = =  '__main__' :
     user_uid  =  os.geteuid()
     stoptime  =  2
  
     task  =  Monitor(user_uid,stoptime)
     print  "server meminfo:\n"
     task.meminfo(used_vm,free_vm,buffers,cached)
     print  "=================================="
     print  "server diskinfo:\n"
     task.diskinfo()
     print  "==================================="
     print  "server cpuinfo:\n"
     task.cpuinfo()
     print  "==================================="
     print  "server flowinfo:\n"
  
     task.flowinfo()
     RX_one  =  float (stats[ 0 ])
     TX_one  =  float (stats[ 1 ])
     time.sleep(stoptimes)
     task.flowinfo()
     RX_two =  float (stats[ 0 ])
     TX_two =  float (stats[ 1 ])
     RX_rate  =  round ( float (RX_two  -  RX_one) / 1024 , 2 )
     TX_rate  =  round ( float (TX_two  -  TX_one) / 1024 , 2 )
  
     print  time.strftime( "%Y-%m-%d %H:%M:%S" ), 'RXbytes=' ,RX_rate, 'KB'
     print  time.strftime( "%Y-%m-%d %H:%M:%S" ), 'TXbytes=' ,TX_rate, 'KB'
相关文章
|
6天前
|
存储 运维 监控
探索局域网电脑监控软件:Python算法与数据结构的巧妙结合
在数字化时代,局域网电脑监控软件成为企业管理和IT运维的重要工具,确保数据安全和网络稳定。本文探讨其背后的关键技术——Python中的算法与数据结构,如字典用于高效存储设备信息,以及数据收集、异常检测和聚合算法提升监控效率。通过Python代码示例,展示了如何实现基本监控功能,帮助读者理解其工作原理并激发技术兴趣。
46 20
|
15天前
|
弹性计算 安全 开发工具
灵码评测-阿里云提供的ECS python3 sdk做安全组管理
批量变更阿里云ECS安全组策略(批量变更)
|
1月前
|
缓存 监控 Linux
Python 实时获取Linux服务器信息
Python 实时获取Linux服务器信息
|
1月前
|
存储 数据采集 数据库
用 Python 爬取淘宝商品价格信息时需要注意什么?
使用 Python 爬取淘宝商品价格信息时,需注意法律和道德规范,遵守法律法规和平台规定,避免非法用途。技术上,可选择 Selenium 和 Requests 库,处理反爬措施如 IP 限制、验证码识别和请求频率控制。解析页面数据时,确定数据位置并清洗格式。数据存储可选择 CSV、Excel、JSON 或数据库,定期更新并去重。还需进行错误处理和日志记录,确保爬虫稳定运行。
|
1月前
|
数据采集 Web App开发 iOS开发
如何利用 Python 的爬虫技术获取淘宝天猫商品的价格信息?
本文介绍了使用 Python 爬虫技术获取淘宝天猫商品价格信息的两种方法。方法一使用 Selenium 模拟浏览器操作,通过定位页面元素获取价格;方法二使用 Requests 和正则表达式直接请求页面内容并提取价格。每种方法都有详细步骤和代码示例,但需注意反爬措施和法律法规。
|
1月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
862 2
|
2月前
|
Python
Python实现系统基础信息
Python实现系统基础信息
36 0
|
弹性计算 安全 Shell
ECS服务器信息查看
ECS服务器信息查看
737 0
ECS服务器信息查看
|
4天前
|
人工智能 JSON Linux
利用阿里云GPU加速服务器实现pdf转换为markdown格式
随着AI模型的发展,GPU需求日益增长,尤其是个人学习和研究。直接购置硬件成本高且更新快,建议选择阿里云等提供的GPU加速型服务器。
利用阿里云GPU加速服务器实现pdf转换为markdown格式
|
4天前
|
开发框架 缓存 .NET
阿里云轻量应用服务器、经济型e、通用算力型u1实例怎么选?区别及选择参考
在阿里云目前的活动中,价格比较优惠的云服务器有轻量应用服务器2核2G3M带宽68元1年,经济型e实例2核2G3M带宽99元1年,通用算力型u1实例2核4G5M带宽199元1年,这几个云服务器是用户关注度最高的。有的新手用户由于是初次使用阿里云服务器,对于轻量应用服务器、经济型e、通用算力型u1实例的相关性能并不是很清楚,本文为大家做个简单的介绍和对比,以供参考。