我想從許多服務器收集信息,無論它們的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
我不想每次給的密碼,並且密碼的認證不存在在我的環境,將是不可能的,我必須要通過腳本本身的密碼真的不會打擾我,我可以做到這一點。我知道這可以通過期望來完成,但是每次我嘗試使用它時都會弄亂一切。
我嘗試使用期望的方式,它被告知在第一個答案,但我失敗了。
使用公鑰和私鑰驗證?然後使用while循環從文件中讀取服務器列表。 – Jasonw
我希望我可以做關鍵驗證傑森,但那不會發生.. 和我試圖讓我的腳本讀取文件的服務器名稱,但我不知道爲什麼它不這樣做 – Stunn3r