【发布时间】:2016-07-30 15:52:02
【问题描述】:
我编写了一个脚本,它通过 SSH 连接到远程服务器并通过执行以下“nvidia-smi”来获取 GPU 服务器的状态,这只是脚本的描述和目的,但问题是我以“root”身份运行它可以 ssh 到另一台无密码的服务器但用户不能,我如何编写脚本让用户运行脚本并获取状态?当然不用输入远程服务器的密码,我可以使用任何身份验证吗?
这是脚本:
#!/bin/bash
HOSTS="gpuserver01\ngpuserver02"
SCRIPTS="nvidia-smi"
echo -e "which GPU server do you want to check?\n$HOSTS\n"-----------------""
echo "Please Enter Numebr of GPU Server"
read ans
#for HOSTNAME in $ans ; do
if [ $ans = '1' ]; then
HOSTNAME="gpuserver01"
ssh ${HOSTNAME} "${SCRIPTS}"
else
HOSTNAME="gpuserver02"
ssh ${HOSTNAME} "${SCRIPTS}"
fi
#done
谢谢。
【问题讨论】:
-
注意:相等运算符只有一个
=; bash 不幸地接受了==,但这会在其他 shell 上中断。不要传播==不合规脚本疾病。谢谢。 -
谢谢,注意,刚刚修复。