gpt4 book ai didi

linux - ssh -V 保存到变量

转载 作者:太空狗 更新时间:2023-10-29 11:09:31 25 4
gpt4 key购买 nike

我正在尝试自动测试从 72 台远程服务器返回到中央服务器的无密码 ssh。我有 72 台服务器的中央服务器无密码 ssh,但需要它从它们返回中央服务器。

这 72 台服务器具有两个 ssh 版本之一。

OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008

sshg3: SSH Tectia Client 6.1.8 on x86_64-unknown-linux-gnu
Build: 136
Product: SSH Tectia Client License
type: commercial

我遇到的问题是试图将 ssh -V 保存到一个变量中,它似乎没有打印到 STDOUT。因此,我的以下尝试都失败了。

ssh -V > someFile.txt
ssh_version=$(ssh -V)

如何轻松保存 ssh -V 的输出,以便可以调用适当的 ssh 批处理选项?

下面是我用于远程测试的脚本。

#!/bin/sh
ssh -V > /tmp/ssh_version_check.txt

cat /tmp/ssh_version_check.txt | grep "OpenSSH"
rc=$?

if [[ $rc == 0 ]]
then
ssh -o BatchMode=yes <central_server> "test -d /tmp"
rc=$?
if [[ $rc != 0 ]]
then
echo "$(hostname) failed" >> /tmp/failed_ssh_test.txt
fi
else
ssh -B <central_server> "test -d /tmp"
rc=$?
if [[ $rc != 0 ]]
then
echo "$(hostname) failed" >> /tmp/failed_ssh_test.txt
fi
fi

最佳答案

ssh -V 输出到 STDERR,而不是 STDOUT

而不是说

ssh -V > /tmp/ssh_version_check.txt

ssh -V >& /tmp/ssh_version_check.txt

ssh -V > /tmp/ssh_version_check.txt 2>&1

为了保存到一个变量,说:

ssh_version=$(ssh -V 2>&1)

关于linux - ssh -V 保存到变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19118724/

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