sh文件监控多台服务器的GPU

首先主要依靠的是gpustat和sshpass
没有gpustat的
使用如下指令安装

pip install gpustat

没有sshpass的使用如下指令安装

sudo apt-get install sshpass

sh文件代码gpushow.sh如下

ip1="你的服务器1 IP"
ip2="你的服务器1 IP"
ip3="你的服务器1 IP"
username="服务器上的用户名"
password="服务器的密码"

echo "运行ing..."
#如果想要在这里显示的话使用如下模式
sshpass -p ${password} ssh ${username}@${ip1} gpustat -cpu
sshpass -p ${password} ssh ${username}@${ip2} gpustat -cpu
sshpass -p ${password} ssh ${username}@${ip3} gpustat -cpu

#如果想放在外面的文件作为输出日志便于处理
var1=$(sshpass -p ${
     
     password} ssh ${
     
     username}@${
     
     ip1} gpustat -cpu)
var2=$(sshpass -p ${
     
     password} ssh ${
     
     username}@${
     
     ip2} gpustat -cpu)
var3=$(sshpass -p ${
     
     password} ssh ${
     
     username}@${
     
     ip3} gpustat -cpu)
reuslt=${var1}${var2}${var3}
echo $reuslt > result.txt
python gpushow.py

python文件gpushow.py代码如下

f = open("result.txt","r")   #设置文件对象
string1 = f.read()     #将txt文件的所有内容读入到字符串string1中
f.close()   #将文件关闭
做一下不同服务器输出信息之间的划分
infor1 = string1.split("第2台服务器的名字")[0]# 这就是第1台服务器的信息
infor1 = string1.split("第2台服务器的名字")[1].split("第3台服务器的名字")[0]# 这就是第2台服务器的信息
infor1 = string1.split("第3台服务器的名字")[1]# 这就是第3台服务器的信息
def show(title,string_num):
    print(title)
    for num,i in enumerate(string_num.split("[")):
        if num==0:
            continue
        else:
            print("["+i)
show("1服务器",string1)
show("2服务器",string2)
show("3服务器",string3)

然后可以使用如下指令让她进行不断地循环检查

watch -n 20 ./gpushow.sh

最后的结果如下
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41554005/article/details/114233974