快捷搜索:  汽车  科技

python列表统计方法(python利用paramiko模块批量统计服务器的磁盘使用百分比)

python列表统计方法(python利用paramiko模块批量统计服务器的磁盘使用百分比)

最近总是有工程师抱怨磁盘空间满了,帮他们解决问题以后,就想着扫描一下所有机器的磁盘使用情况,提前把快满的给清理一下。下面是一般输出结果:

python列表统计方法(python利用paramiko模块批量统计服务器的磁盘使用百分比)(1)

我的函数实现就是把输出结果进行简单的统计整理:

def get_disk(): with open('server.txt' 'r' encoding='utf-8') as rfile: servers = rfile.readlines() # 按行读取 for item in servers: # 遍历列表, d = dict(eval(item)) # 列表中的第一个元素,编写成字典 d.update(username="xxx" password="xxx" port='22') # 第一个元素更新 value_list = [] value_list.append(d['id']) value_list.append(d['username']) value_list.append(d['password']) value_list.append(d['port']) hostinfo = value_list[0] ' ' value_list[1] ' ' value_list[2] ' ' value_list[3] hostinfo = hostinfo.strip() hostip username password port = hostinfo.split(' ') print(hostip) SSH = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(hostname=hostip port=port username=username password=password) stdin stdout stderr = ssh.exec_command('df -h') result = stdout.read().decode('utf-8') ##arr = result.split('\n') a=analyze(result) for row in a: path = row[5] # 路径 use = row[4] # 使用占比 use_number = int(use.replace('%' '')) if (use_number > 90): print('磁盘{}路径使用超过{}'.format(path use)) if (path == '/'): print('磁盘/root使用率为{}'.format( use)) if (path == '/repo'): print('磁盘{}使用率为{}'.format(path use)) if (path == '/repo-1'): print('磁盘{}使用率为{}'.format(path use)) ssh.close()

输出格式如下:

python列表统计方法(python利用paramiko模块批量统计服务器的磁盘使用百分比)(2)

猜您喜欢: