我想从许多服务器收集信息,无论它们的 grub.conf 是否包含“elevator”参数。
现在,无密码密钥身份验证是我目前无法做到的。我可以在脚本中指定密码。
有人可以帮我实现这一目标吗?
这就是我所做的:
#!/bin/bash
GRUB="/etc/grub.conf"
_pair="$(</home/wadhwaso/login.txt)"
Server_info="/tmp/server_info"
for e in $_pair
do
# extract user and ips for each $e in $_pair
IFS='@'
set -- $e
_user="$1"
_ip="$2"
sleep 2
echo "Connecting to server '${_ip}' via SSH..."
ssh ${_user}@${_ip} "sudo grep -q "elevator=noop" "$GRUB" >/dev/null"
if [ $? -eq 0 ]; then
echo "Present on ${_ip}" | tee -a "${Server_info}"
else
echo "not present on ${_ip}" | tee -a "${Server_info}"
fi
done
我不想每次都提供密码,并且由于我的环境中不存在无密码身份验证并且不可能,我必须在脚本本身中传递密码,这真的不会打扰我,我可以做到. 我知道它可以通过期望来完成,但每次我尝试使用它时我都搞砸了。
我尝试使用第一个答案中告诉它的方式,但我失败了。