N台伺服器之間的SSH

N台伺服器之間的SSH

我有 n 個伺服器,例如c0001.test.cloud.comc0002.test.cloud.comc0003.test.cloud.com我想在這些伺服器之間執行 ssh,例如:從伺服器:c0001 執行 ssh 到 c0002,然後退出伺服器。返回 c0001,透過 ssh 連接到 c0003,然後退出伺服器。

因此,透過這種方式,它將在運行時執行腳本而無需輸入任何輸入,並且我們可以擁有n個伺服器。我寫了一個腳本:

str1=c0001.test.cloud.com,c0002.test.cloud.com,c0003.test.cloud.com
string="$( cut -d ',' -f 2- <<< "$str1" )"
echo "$string"
for j in $(echo $string | sed "s/,/ /g") do ssh appAccount@j done

但這個腳本運作不正常。我還通過傳遞以下參數進行了檢查:-o StrictHostKeyChecking=no<<'ENDSSH'它不起作用。那我們要如何使用腳本實作多伺服器之間的ssh呢?

答案1

  1. 你是說 ,用作shell 變數。但這意味著您需要將該變數引用為,例如。for j in …(values)… do ssh appAccount@j donej$jssh "appAccount@$j"
  2. 您需要一個分號(;ssh "appAccount@$j") 或和之間的換行符done

還有其他問題——例如,所有 shell 變數引用都應該被引用——但上面的內容應該可以幫助您入門。

相關內容