远程服务器com3被占用,python3 监控远程服务器的磁盘

非常感谢!! https://blog.csdn.net/qq_43279936/article/details/86533095

1,需要 paramiko 模块

pip3 install paramiko

2,链接远程服务器,并执行df -h

import paramiko

client = paramiko.SSHClient()

'''

这里用的连接方式是秘钥连接,推荐用这种,没有明文密码,比较安全

这种方式需要两台机器之间建立信任关系

关于如何建立信任关系,请百度 'centos建立信任关系'

'''

private_key = paramiko.RSAKey.from_private_key_file('/home/www/.ssh/id_rsa')

client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

client.connect(hostname=server_info['host'],username=server_info['user'],pkey= private_key)

stdin, stdout, stderr = client.exec_command('df -h')

result = stdout.read().decode('utf-8')

client.close()

3,解析返回的字符串,封装好了一个方法,直接传入上面的result,会解析好

def analyze(self,data):

arr = data.split('\n')

'''这种格式

Filesystem Size Used Avail Use% Mounted on

/dev/vda1 50G 23G 24G 49% /

devtmpfs 7.8G 0 7.8G 0% /dev

tmpfs 7.8G 316K 7.8G 1% /dev/shm

tmpfs 7.8G 1.2M 7.8G 1% /run

tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup

/dev/vdb 985G 62G 873G 7% /data

tmpfs 1.6G 0 1.6G 0% /run/user/0

tmpfs 1.6G 0 1.6G 0% /run/user/1000

'''

i = 1

format_data = []

for row in arr:

#第一行不要

if(i == 1):

i+=1

continue

data_row = []

row_arr = row.split(' ')

for item in row_arr:

if(item == ''):

continue

data_row.append(item)

if(len(data_row) > 0):

format_data.append(data_row)

return format_data

4,判断磁盘使用情况

#format_data 是上面封装方法返回的

for row in format_data:

path = row[5] #路径

use = row[4] #使用占比

use_number = int(use.replace('%',''))

self._l.info('use={},path={}'.format(use,path))

if(use_number > 80):

print('磁盘{}路径使用超过{}'.format(path,use))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值