如何通过SSH合并3台机器的周期性nvidia-smi输出?
解决方案:单窗口合并多机器周期性nvidia-smi输出
嘿,这个需求其实可以用watch+sshpass+ssh的组合轻松实现,不用写复杂的脚本,一条命令就能搞定。下面是具体的实现方案:
核心命令(串行输出,可读性更好)
watch -n 5 'echo "=== 机器1 (192.168.1.101) ===" && sshpass -p "你的密码" ssh 用户名@192.168.1.101 nvidia-smi && echo -e "\n=== 机器2 (192.168.1.102) ===" && sshpass -p "你的密码" ssh 用户名@192.168.1.102 nvidia-smi && echo -e "\n=== 机器3 (192.168.1.103) ===" && sshpass -p "你的密码" ssh 用户名@192.168.1.103 nvidia-smi'
命令拆解
watch -n 5:每5秒自动执行一次后面的整个命令块,你可以把5改成任何你需要的刷新间隔(比如10秒就写-n 10)。echo "=== 机器X ===":用来给每台机器的输出加上清晰的分隔标识,方便你快速区分哪台机器的监控数据。sshpass -p "你的密码":自动帮你输入SSH密码,避免每次手动输入的麻烦(因为你三台机器用相同的账号密码)。ssh 用户名@机器地址 nvidia-smi:通过SSH远程登录目标机器并执行nvidia-smi命令,直接返回输出。
可选优化方案
1. 并行执行(输出可能交错,但刷新更快)
如果你希望三台机器的命令同时执行,减少总耗时,可以用后台运行的方式:
watch -n 5 'sshpass -p "你的密码" ssh 用户名@192.168.1.101 "echo \"=== 机器1 ===\"; nvidia-smi" & sshpass -p "你的密码" ssh 用户名@192.168.1.102 "echo \"=== 机器2 ===\"; nvidia-smi" & sshpass -p "你的密码" ssh 用户名@192.168.1.103 "echo \"=== 机器3 ===\"; nvidia-smi" & wait'
注意:这种方式下三台机器的输出可能会交错在一起,可读性稍差,但刷新速度更快。
2. 简化密码输入(避免明文写密码)
虽然你说不用考虑安全,但如果不想在命令里明文写密码,可以把密码存到一个文件里(比如./ssh_password.txt),然后用:
watch -n 5 'echo "=== 机器1 ===" && sshpass -f ./ssh_password.txt ssh 用户名@192.168.1.101 nvidia-smi && echo -e "\n=== 机器2 ===" && sshpass -f ./ssh_password.txt ssh 用户名@192.168.1.102 nvidia-smi && echo -e "\n=== 机器3 ===" && sshpass -f ./ssh_password.txt ssh 用户名@192.168.1.103 nvidia-smi'
3. 精简nvidia-smi输出
如果觉得默认的nvidia-smi输出太冗长,可以指定只显示关键指标,比如GPU利用率、显存使用情况:
watch -n 5 'echo "=== 机器1 ===" && sshpass -p "你的密码" ssh 用户名@192.168.1.101 nvidia-smi --query-gpu=name,utilization.gpu,memory.used,memory.total --format=csv && echo -e "\n=== 机器2 ===" && sshpass -p "你的密码" ssh 用户名@192.168.1.102 nvidia-smi --query-gpu=name,utilization.gpu,memory.used,memory.total --format=csv && echo -e "\n=== 机器3 ===" && sshpass -p "你的密码" ssh 用户名@192.168.1.103 nvidia-smi --query-gpu=name,utilization.gpu,memory.used,memory.total --format=csv'
前置准备
确保你的本地机器已经安装了sshpass工具:
- Ubuntu/Debian系统:
sudo apt install sshpass - CentOS/RHEL系统:
sudo yum install sshpass
内容的提问来源于stack exchange,提问作者Holi
相关产品推荐
相关产品推荐

