【问题标题】:script to connect to a "list.txt" of servers连接到服务器“list.txt”的脚本
【发布时间】:2020-06-30 11:02:18
【问题描述】:

我正在尝试找到一种方法来连接到用简单文本文件编写的服务器列表以运行一个命令并将输出写入文件... 小问题是,我必须使用密码登录......但是将密码粘贴到脚本中不会有问题。 完整的命令是:

ssh "server_from_list.txt uptime | awk -F, '{sub(".*up ",x,$1);print $1}' >> /home/kauk2/uptime.out

假设密码是:abcd1234

有什么建议吗???我不适合写脚本,对不起... 非常感谢大家提前...

问候, 约尔格

【问题讨论】:

标签: bash ssh scripting


【解决方案1】:

理想情况下,您应该设置无密码登录,但如果失败,您可以使用sshpass。首先,通过尝试以下方法使单个命令正常工作:

export SSHPASS=abcd1234

那你可以试试:

sshpass -e ssh user@server1 'uname -a'

当您调试并工作后,您可以使用 GNU Parallel 在名为 list.txt 的文件中的所有服务器上运行该命令

user@server1
user@server2
user@server3
user@server4

命令将是:

parallel -k -a list.txt sshpass -e ssh {} 'uptime'

【讨论】:

  • 嗨,马克,感谢您的建议。我忘了说,我在 IBM AIX 环境中工作。所以,这里没有可用的 sshpass...