簡體   English   中英

在 while 循環中通過 SSH 執行命令

[英]Executing a command via SSH during a while loop

我在一個我稱之為“框”的文件中有一個服務器列表。

我正在運行以下內容:

bastion:~ # while read i j; do ssh -n $i 'echo $(hostname)'; done < boxes

當我運行它時,我應該得到我應該通過 SSH 連接到的每個盒子的主機名,對嗎? 但是我得到的是我的主機名一遍又一遍地“堡壘”,就好像命令沒有通過 SSH 連接到任何盒子一樣。

知道為什么會這樣或者我在這里做錯了什么嗎?

謝謝。

編輯:我無法讓 SSH 來完成這項任務。 最后我把 ssh 換成了 ansible -m shell。

hostname就足夠了

我最喜歡的 GNU Parallel 解決方案(更快) sudo apt-get install parallel

 parallel --nonall --slf boxes hostname

您可以添加--tag等等https://www.gnu.org/software/parallel/parallel_tutorial.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM