检查SSH连接和调用函数,执行命令
check SSH connection and call function, execute command
我在配置 RSA 连接后尝试通过 SSH 连接客户端。我想验证 SSH 连接是否成功,如果是,那么我想首先通过调用一个函数来获取它,然后在 client.Below 上执行命令是我试图在服务器上执行的脚本,
function set_env() {
if [ -f /usr/pw/server/bin/setup_env.sh ]; then
source /usr/pw/server/bin/setup_env.sh
elif [ -f /etc/mcell/setup_env.sh ]; then
source /etc/mcell/setup_env.sh
else
echo "setup_env.sh not found, exiting"
exit 1
fi
}
i="application_was"
if ssh clientname
then
set_env
mcstat -q -n $i | grep "Running"
else
echo "Sorry"
fi
我可以通过 SSH 连接到客户端,但 set_env 功能在登录时未在客户端上执行。我如何确保它发生?如果没有,如何捕获错误?
假设这一切都应该在远程机器上 运行 然后你需要把它全部放在远程命令中。
当 运行 在非交互式上下文中时,ssh 不会神奇地进入远程主机上的 shell 以获取 运行ning 脚本的其余部分(想想如何这需要工作一分钟)。
ssh clientname '
if [ -f /usr/pw/server/bin/setup_env.sh ]; then
source /usr/pw/server/bin/setup_env.sh
elif [ -f /etc/mcell/setup_env.sh ]; then
source /etc/mcell/setup_env.sh
else
echo "setup_env.sh not found, exiting"
exit 1
fi
mcstat -q -n "'"$i"'" | grep "Running"' || echo "Sorry"
如果 ssh 连接失败或采购失败或 grep 失败以及在所有其他情况下 grep 的输出,这将使您 "Sorry" 作为输出。
我在配置 RSA 连接后尝试通过 SSH 连接客户端。我想验证 SSH 连接是否成功,如果是,那么我想首先通过调用一个函数来获取它,然后在 client.Below 上执行命令是我试图在服务器上执行的脚本,
function set_env() {
if [ -f /usr/pw/server/bin/setup_env.sh ]; then
source /usr/pw/server/bin/setup_env.sh
elif [ -f /etc/mcell/setup_env.sh ]; then
source /etc/mcell/setup_env.sh
else
echo "setup_env.sh not found, exiting"
exit 1
fi
}
i="application_was"
if ssh clientname
then
set_env
mcstat -q -n $i | grep "Running"
else
echo "Sorry"
fi
我可以通过 SSH 连接到客户端,但 set_env 功能在登录时未在客户端上执行。我如何确保它发生?如果没有,如何捕获错误?
假设这一切都应该在远程机器上 运行 然后你需要把它全部放在远程命令中。
当 运行 在非交互式上下文中时,ssh 不会神奇地进入远程主机上的 shell 以获取 运行ning 脚本的其余部分(想想如何这需要工作一分钟)。
ssh clientname '
if [ -f /usr/pw/server/bin/setup_env.sh ]; then
source /usr/pw/server/bin/setup_env.sh
elif [ -f /etc/mcell/setup_env.sh ]; then
source /etc/mcell/setup_env.sh
else
echo "setup_env.sh not found, exiting"
exit 1
fi
mcstat -q -n "'"$i"'" | grep "Running"' || echo "Sorry"
如果 ssh 连接失败或采购失败或 grep 失败以及在所有其他情况下 grep 的输出,这将使您 "Sorry" 作为输出。