gpt4 book ai didi

linux - 检查SSH连接和调用函数,执行命令

转载 作者:太空宇宙 更新时间:2023-11-04 09:34:48 25 4
gpt4 key购买 nike

我在配置 RSA 连接后尝试通过 SSH 连接客户端。我想验证 SSH 连接是否成功,如果是,那么我想首先通过调用一个函数来获取它,然后在客户端上执行命令。下面是我试图在服务器上执行的脚本,

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 以供运行脚本的其余部分使用(想一想这需要如何工作)。

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 的输出,这将使您输出“抱歉”。

关于linux - 检查SSH连接和调用函数,执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27825214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com