You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:19:14