日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

監(jiān)控服務器資源利用率的客戶端腳本

麥辣雞腿堡 ? 來源:CSDN博客 ? 作者:jerry-89 ? 2023-01-22 16:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

客戶端腳本:

端腳本:

- - coding:utf-8 - -

import io

import os

import sys

import time

import datetime

import socket

import commands

import logging

from logging import handlers

import psutil

import struct

import fcntl

if sys.getdefaultencoding() != 'utf-8':

reload(sys)

sys.setdefaultencoding('utf-8')

class Logger(object):

level_relations = {

'debug': logging.DEBUG,

'info': logging.INFO,

'warning': logging.WARNING,

'error': logging.ERROR,

'crit': logging.CRITICAL

} # 日志級別關系映射

def init (self,logname, level='info', when='D', backCount=10, fmt='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s'):

CURRENT_DIR = os.path.dirname(file)

LOG_FILE = os.path.abspath(os.path.join(CURRENT_DIR, logname))

self.logger = logging.getLogger(LOG_FILE)

format_str = logging.Formatter(fmt) # 設置日志格式

self.logger.setLevel(self.level_relations.get(level)) # 設置日志級別

sh = logging.StreamHandler() # 往屏幕上輸出

sh.setFormatter(format_str) # 設置屏幕上顯示的格式

th = handlers.TimedRotatingFileHandler(

filename=LOG_FILE, when=when, backupCount=backCount, encoding='utf-8') # 往文件里寫入#指定間隔時間自動生成文件的處理器

#實例化TimedRotatingFileHandler

#interval是時間間隔,backupCount是備份文件的個數,如果超過這個個數,就會自動刪除,when是間隔的時間單位,單位有以下幾種:

S 秒

M 分

H 小時、

D 天、

W 每星期(interval==0時代表星期一)

midnight 每天凌晨

th.setFormatter(format_str) # 設置文件里寫入的格式

#self.logger.addHandler(sh) # 把對象加到logger里

if not self.logger.handlers:

self.logger.addHandler(th)

class clientMonitor(object):

#獲取指定網卡ip

def getIpAddress(self,dev):

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

a = s.fileno()

b = 0x8915

c = struct.pack('256s', dev[:15])

res = fcntl.ioctl(a, b, c)[20:24]

return socket.inet_ntoa(res)

#獲取網絡的使用情況 ,取的是eth0的發(fā)送和收取的總字節(jié)數

#readNetInfo('eth0')

def readNetInfo(self,dev):

f = open('/proc/net/dev')

lines = f.readlines()

f.close()

res = {'in':0, 'out':0}

for line in lines:

if line.lstrip().startswith(dev):

for centos

line = line.replace(':', ' ')

items = line.split()

res['in'] = long(items[1])#/1024

res['out'] = long(items[len(items)/2 + 1])#/1024

return res

def readNetInfo_new(self,dev):

res = {'in':0, 'out':0}

res['in'] = psutil.net_io_counters(pernic=True).get(dev).bytes_recv

res['out'] = psutil.net_io_counters(pernic=True).get(dev).bytes_sent

return res

#磁盤使用率,path:磁盤路徑

def disk_stat(self,path):

hd={}

disk = os.statvfs(path)

percent = (disk.f_blocks - disk.f_bfree) * 100 / (disk.f_blocks -disk.f_bfree + disk.f_bavail) + 1

return percent

def net_loop(self,dev):

#end = {'in':0, 'out':0}

res = self.readNetInfo_new(dev)

#推遲執(zhí)行的秒數

time.sleep(2)

#new_recv,new_send = get_net_data()

new_res = self.readNetInfo_new(dev)

recv_data = (new_res['in']-res['in'])/1024/1024

send_data = (new_res['out']-res['out'])/1024/1024

print ("recv_data: %s M, send_data: %s M"%(recv_data, send_data))

return recv_data,send_data

def processcheck(self,cmd):

#cmd='ps -aux | sort -k3nr | head -1'

(status,output) = commands.getstatusoutput(cmd)

#Pid= output.split(' ')[6]

log.logger.info('資源占用top:\\n'+output)

#查看占用內存最高的進程的PID

#ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head

#ps -aux | sort -k4nr | head -1 ,-k3 cpu占用最高,-k4 內存占用最高

#root 14668 1.9 0.0 90504 3256 ? Ss 4月23 2811:48 /sbin/rngd -f

#索引:-k3 b.split(' ')[6] 28進程路徑(/sbin/rngd)

#索引:-k4 b.split(' ')[4]

if name == " main ":

#10分鐘執(zhí)行一次,數據上報到服務端,服務端負責報警

#需要修改的參數:custom,deviceType,netName

custom ='test'

deviceType ='客戶端服務器'

#網卡名稱

netName = 'ens3f0'

log = Logger('socketclient.logs')

log.logger.info("----start----")

info=clientMonitor()

locatIp = info.getIpAddress(netName)

recv_data,send_data = info.net_loop(netName)

cpuinfo = psutil.cpu_percent(1)

#svmem(total=67268558848, available=32022245376, percent=52.4, used=34601009152, free=29655695360, active=17274105856, inactive=2927910912, buffers=10100736, cached=3001753600, shared=298610688, slab=11243315200)

svmem = psutil.virtual_memory()

meminfo = svmem[2]

disk_root = info.disk_stat('/')

disk_appslog = info.disk_stat('/appslog')

disk_bigdata = info.disk_stat('/bigdata')

#如果CPU或內存的占用率大于80%,將占用CPU或內存資源最多的進程找出來

issendmsg =1

if(cpuinfo>80 or meminfo>80 or disk_root>80 or disk_appslog>80 or disk_bigdata>80 or recv_data>3000 or send_data>3000):

#發(fā)送預警郵件

sendmsg=locatIp +' 服務器資源占用高!請檢查!\\n'

sendmsg += "CPU占用:"+str(cpuinfo)+'\\n'

sendmsg += "內存占用:"+str(meminfo)+'\\n'

sendmsg += "/目錄占用:"+str(disk_root)+'\\n'

sendmsg += "/appslog目錄占用:"+str(disk_appslog)+'\\n'

sendmsg += "/bigdata目錄占用:"+str(disk_bigdata)+'\\n'

sendmsg += "網卡接收流量:"+str(recv_data)+'M,發(fā)送流量 '+str(send_data)+'M \\n'

#sendmsg += "網卡10秒發(fā)送流量:"+str(send_data)+'\\n'

log.logger.info(sendmsg)

if cpuinfo>80 :

info.processcheck('ps -aux | sort -k3nr | head -10')

if meminfo>80 :

info.processcheck('ps -aux | sort -k4nr | head -10')

issendmsg = 1

else:

#log.logger.info(locatIp+" 正常")

log.logger.info("CPU使用率:"+str(cpuinfo))

log.logger.info("內存使用率:"+str(meminfo))

log.logger.info("/目錄使用率:"+str(disk_root))

log.logger.info("/appslog使用率:"+str(disk_appslog))

log.logger.info("/bigdata使用率:"+str(disk_bigdata))

log.logger.info("網卡接收和發(fā)送情況:接收"+str(recv_data) +"M, 發(fā)送 "+str(send_data)+"M")

#Id,custom,deviceType,IP,cpu,mem,disk_root,disk_appslog,disk_bigdata,networkRecv,networkSend,uploadTime,temp2,temp3,temp4

msg = '1'+'|'+custom+'|'+deviceType+'|'+locatIp+'|'+str(cpuinfo)+'|'+str(meminfo)+'|'+str(disk_root)+'|'+str(disk_appslog)+'|'+str(disk_bigdata)+'|'+str(recv_data)+'|'+str(send_data)+'|'+time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

if issendmsg ==1:

ip_port = ('IP',port)

sk = socket.socket()

sk.connect(ip_port)

sk.sendall(msg)

data = sk.recv(1024)

if data=='1':

log.logger.info("本地預警信息傳輸成功!")

else:

log.logger.info("本地預警信息傳輸失敗!")

sk.sendall('exit')

sk.close()

原文鏈接:https://blog.csdn.net/eagle89/article/details/128579002

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 監(jiān)控
    +關注

    關注

    6

    文章

    2400

    瀏覽量

    59631
  • 服務器
    +關注

    關注

    14

    文章

    10371

    瀏覽量

    91774
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    TCP視頻服務器&客戶端 - 版本LabVIEW 2012

    ;客戶端功能:顯示服務器采集到的視頻,實時調整服務器采集視頻的分辨率。客戶端需要輸入服務器端的ip地址和端口號。以這兩個程序為基礎,可以加個
    發(fā)表于 01-22 14:22

    一個服務器,多個客戶端,怎么向指定的客戶端發(fā)數據

    我用labview做服務器,單片機做客戶端,客戶端幾百個,怎么區(qū)分客戶端,給指定的客戶發(fā)發(fā)數據
    發(fā)表于 06-01 09:26

    求助:labview服務器如何實時訪問客戶端

    畢設瓶頸,大佬們,怎么設計程序,服務器可以每秒訪問一次客戶端,讀取客戶端的數據?寫入電子表格控件可以能插入局部變量嗎?跪謝。
    發(fā)表于 05-14 10:14

    labview-TCP多客戶端服務器

    labview-TCP多客戶端服務器一個服務器上位機,多個下位機客戶端
    發(fā)表于 03-26 16:58

    如何同時開啟服務器模式和客戶端模式?

    如題,UCOSII或者FreeRtos下使用LWIP如何同時開啟服務器模式和客戶端模式,我這幾天弄了下,單獨跑其中一個,都好好的,但是同時跑,客戶端連接上了,服務器就不行了,誰知道這要
    發(fā)表于 10-31 03:05

    監(jiān)控系統客戶端服務端設計

    項目開發(fā)報告1 項目簡介1.1 概述1.2 開發(fā)環(huán)境1.3 其他支持1.4 應用界面1.4.1 服務器端1.4.2 客戶端1.5 程序使用2 項目開發(fā)2.1 搭建基于實驗平臺數據庫2.1.1 數據庫
    發(fā)表于 12-21 07:02

    客戶端模式是什么?服務器模式又是什么呢

    客戶端模式是什么?服務器模式又是什么呢?怎樣去編寫一種服務器模式程序呢?
    發(fā)表于 02-22 07:44

    通訊貓MQTT服務器在線客戶端的問題

    我在網上找一個通訊貓MQTT服務器在線客戶端。我有點糊涂,到底是服務器,還是客戶端??梢赃B上,也可以發(fā)數據,就是不知道跟誰連。我從上面下了個WIN32
    發(fā)表于 11-19 12:17

    計算機的客戶端服務器

    計算機的客戶端服務器 一般說來,互聯網上的所有計算機可以分成兩種類型:服務器客戶端。向其他計算機提供服務(如Web
    發(fā)表于 08-05 08:57 ?2063次閱讀

    專家談如何提高服務器利用率

    專家談如何提高服務器利用率  如今,數據中心節(jié)能已成為熱點話題,為減少功耗,各大廠商紛紛推出相應產品和解決方案。近日,Microsoft的utility
    發(fā)表于 01-27 11:46 ?964次閱讀

    客戶端服務器和網絡技術

    基于服務器的計算代表著一種應用程序部署方法。 對以下基于服務器的計算環(huán)境而言,瘦客戶端是理想的客戶端設備: 借助 Windows 2000 或 Windows Server 2003
    發(fā)表于 07-02 16:46 ?17次下載
    瘦<b class='flag-5'>客戶端</b>的<b class='flag-5'>服務器</b>和網絡技術

    CoolpyCould客戶端

    一款開源的物聯網服務器平臺,利用nodejs寫成,此文件是CoolpyCould客戶端
    發(fā)表于 11-06 17:00 ?18次下載

    監(jiān)控服務器資源利用率服務端腳本

    其主要目的是:基于 Python 編程語言來監(jiān)控服務器的 CPU、內存、/目錄、/appslog、/bigdata目錄使用率以及網卡接收和發(fā)送情況。 該腳本部署場景分為:
    的頭像 發(fā)表于 01-22 16:02 ?1591次閱讀

    利用Python寫了一個監(jiān)控服務器資源利用率腳本!

    研究了一個腳本,其主要目的是:基于 Python 編程語言來監(jiān)控服務器的 CPU、內存、/目錄、/appslog、/bigdata目錄使用率以及網卡接收和發(fā)送情況。
    的頭像 發(fā)表于 01-29 15:08 ?1506次閱讀

    服務器Server和客戶端Client的區(qū)別

    例如在使用TCP通訊建立連接時采用客戶端服務器模式,這種模式又常常被稱為主從式架構,簡稱為C/S結構,屬于一種網絡通訊架構,將通訊的雙方以客戶端(Client )與服務器 (Serve
    的頭像 發(fā)表于 09-06 16:13 ?2931次閱讀
    <b class='flag-5'>服務器</b>Server和<b class='flag-5'>客戶端</b>Client的區(qū)別
    宽甸| 宁明县| 普定县| 宁都县| 象山县| 延庆县| 武定县| 荔波县| 凭祥市| 扶风县| 迭部县| 利辛县| 阿拉善右旗| 阆中市| 杭锦后旗| 皋兰县| 陆良县| 开江县| 雅安市| 舒城县| 芷江| 沂水县| 松原市| 青川县| 宾川县| 泗水县| 聊城市| 内丘县| 山阳县| 金门县| 历史| 镇安县| 屏山县| 衢州市| 甘谷县| 墨竹工卡县| 军事| 海林市| 齐河县| 克东县| 石狮市|