用于远程检索Red Hat订阅信息的Shell脚本

时间:2016-10-18 16:15:52

标签: bash shell ssh

我正在尝试编写一个脚本来ssh到从列表中检索到的服务器,然后报告订阅管理器信息。这是我的脚本,但有问题:

#!/bin/bash

SERVERLIST=`cat $HOME/Documents/RHEL_servers.txt | awk '{print $1}'`
SUBCOMMAND='sudo subscription-manager list --available'

#for HOSTS in $SERVERLIST; do echo $HOSTS;
#done

for HOSTS in $SERVERLIST; do ssh -t $HOSTS "($SUBCOMMAND)" > output.log;
done

通过查看output.log,似乎正在发生的事情是脚本挂在输入我的密码以启动subscription-manager命令的步骤上,但我没有看到。我的假设是它将它传递给远程计算机上的连接而不是我的身边,我从未看到输入密码的选项。 有没有办法解决? 我希望的最终结果是将订阅管理器列表的输出 - 可用命令传送到我的计算机上的output.log文件。

1 个答案:

答案 0 :(得分:0)

虽然sudo默认情况下会将其密码提示直接写入其控制终端,但该终端只是绑定到本地ssh标准输出。您的脚本只是挂在等待输入密码的意义上;提示已写入输出日志。

您应该可以通过sudo将密码直接发送到ssh;您也可以使用-S选项强制sudo从其stdin中读取密码。

理想情况下,您可以在远程主机上配置sudo以运行命令而无需密码。