cpu_use = psutil.cpu_percent(interval=True)
cpu_usage = {
"cpu_used": cpu_use
}
return cpu_usage
获取网卡信息函数
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def net_info():
net_dict_list = {}
net_dev = psutil.net_io_counters(pernic=True)
for dev_name in net_dev.keys():
net_dict_list[dev_name] = {
"RX_b": net_dev[dev_name].bytes_recv,
"TX_b": net_dev[dev_name].bytes_sent,
"Dropout": net_dev[dev_name].dropout,
"Dropint": net_dev[dev_name].dropin
}
return net_dict_list
获取用户信息函数
def user_info():
user_dict_list = []
user_dict = psutil.users()
for i in range(len(user_dict)):
user_dict_tmp = {}
user_dict_tmp[user_dict[i].name] = {
"terminal": user_dict[i].terminal,
"host": user_dict[i].host,
"start_time": user_dict[i].started
}
user_dict_list.append(user_dict_tmp)
return user_dict_list
获取内存消耗前10的进程函数
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def process_info():
process_dict_list_tmp = []
pid_dict = psutil.pids()
for i in pid_dict:
pid = psutil.Process(i)
pid_tuple = (i, pid.name(), pid.memory_percent(), pid.create_time(), pid.status(), pid.cwd(), pid.exe())
process_dict_list_tmp.append(pid_tuple)
process_dict_list_tmp.sort(key=lambda mem1: mem1[2], reverse=True)
process_dict_list = process_dict_list_tmp[0:10]
return process_dict_list
获取开机时间函数
def runtime_info():
host_runtime = psutil.boot_time()
host_run_time = {
"host_runtime": host_runtime
}
return host_run_time
没用的函数
def get_info():
host_info = {
'disk_info': disk_info(),
'mem_info': mem_info(),
'cpu_info': cpu_info(),
'net_info': net_info(),
'process_info': process_info(),
'user_info': user_info(),
'runtime_info': runtime_info()
}
return repr(host_info)
socket数据发送函数
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def socket_send(socket_server=None, socket_port=None, cammds=None, type=None, PackName=None):
if type == 'regs':
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((socket_server, socket_port))
s.sendall(cammds)
request = str(s.recv(18))
s.close()
return request
elif type == 'data':
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((socket_server, socket_port))
s.sendall(cammds)
request = str(s.recv(128))
if request == 'OK':
Rtime = now_time()
PackSize = sys.getsizeof(cammds)
print(" '%s' : transfer TCP Package '%s' Size '%s' sucessful ") % (Rtime, PackName, PackSize)
s.close()
构架TCP格式数据包函数
def trans_pack(commands=None, type=None):
Net_type = 4 # package versions
Mem_type = 1
Cpu_type = 2
Disk_type = 3
Runtime_type = 5
if type == 'Mem':
machine_number = json_conf()["machine_number"] # 获取机器码
body = json.dumps(dict(commands)) # 生成JSON格式包体
header = [Mem_type, body.len(), machine_number] # 组成包头格式为:版本,包体长度,机器码
headPack = struct.pack("!3I", *header) # 生成包头
sendPack = headPack + body.encode() # 构建TCP数据包
return sendPack
elif type == 'Net':
machine_number = json_conf()["machine_number"] # 获取机器码
body = json.dumps(dict(commands)) # 生成JSON格式包体
header = [Net_type, body.len(), machine_number] # 组成包头格式为:版本,包体长度,机器码
headPack = struct.pack("!3I", *header) # 生成包头
sendPack = headPack + body.encode() # 构建TCP数据包
return sendPack
elif type == 'Cpu':
machine_number = json_conf()["machine_number"] # 获取机器码
body = json.dumps(dict(commands)) # 生成JSON格式包体
header = [Cpu_type, body.len(), machine_number] # 组成包头格式为:版本,包体长度,机器码
headPack = struct.pack("!3I", *header) # 生成包头
sendPack = headPack + body.encode() # 构建TCP数据包
return sendPack
elif type == 'Disk':
machine_number = json_conf()["machine_number"] # 获取机器码
body = json.dumps(dict(commands)) # 生成JSON格式包体
header = [Disk_type, body.len(), machine_number] # 组成包头格式为:版本,包体长度,机器码
headPack = struct.pack("!3I", *header) # 生成包头
sendPack = headPack + body.encode() # 构建TCP数据包
return sendPack
elif type == 'Run':
machine_number = json_conf()["machine_number"] # 获取机器码
body = json.dumps(dict(commands)) # 生成JSON格式包体
header = [Runtime_type, body.len(), machine_number] # 组成包头格式为:版本,包体长度,机器码
headPack = struct.pack("!3I", *header) # 生成包头
sendPack = headPack + body.encode() # 构建TCP数据包
return sendPack
读取JSON配置函数
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def json_conf():
a = os.getcwd()
os.chdir("%s/client/conf" % a) # 改变工作目录为JSON文件目录
json_list = file("%s/client/conf/client_conf.json" % a) # 读取JSON配置文件
m = json_list.read()
json_list.seek(0)
json_conf = json.loads(json_list.read()) # 取出JSON配置文件
json_list.close()
return json_conf
def json_write(command=None):
a = os.getcwd()
os.chdir("%s/client/conf" % a)
print(command)
b = type(command)
m = open("client_conf.json", 'w')
agent第一次注册函数
def client_regs():
host_info = json.dumps({'ip': str(json_conf()['local_adder']), 'mac': str(json_conf()['local_mac'])})
regs_addr = json_conf()['send_server']
regs_port = json_conf()['server_regs_port']
server_request = str(socket_send(socket_server=regs_addr, socket_port=regs_port, cammds=host_info, type='regs'))
conf = json_conf()
conf['machine_number'] = server_request
conf = json.dumps(conf)
json_write(command=conf)
数据包发送函数
def send_data():
DiskPack = trans_pack(commands=disk_info(), type='Disk') # 生成TCP数据包
MemPack = trans_pack(commands=mem_info(), type='Mem')
NetPack = trans_pack(commands=net_info(), type='Net')
regs_addr = json_conf()['send_server'] # 获取服务器地址
regs_port = json_conf()['send_port'] # 获取服务器端口
socket_send(socket_server=regs_addr, socket_port=regs_port, cammds=DiskPack, type='data',
PackName='DiskPack') # 向服务器发送数据包
socket_send(socket_server=regs_addr, socket_port=regs_port, cammds=MemPack, type='data', PackName='MemPack')
收集整理了一份《2024年最新Python全套学习资料》免费送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!