簡體   English   中英

是否可以將命令的輸出從服務器傳遞到本地計算機?

[英]Is is possible to pipe the output of a command from a server to a local machine?

我的學校提供​​了一系列功能相同的服務器,可運行各種操作系統和硬件配置。 在大多數情況下,我可以互換使用其中的5個。 不幸的是,其他學生傾向於在一些機器上堆積起來,找到一個沒有陷入困境的人很痛苦。

我想要的是ssh到一台機器,運行命令:

w | wc -l

粗略估計該服務器上的負載,並使用該信息選擇受影響最小的服務器。 一種客戶端負載均衡器。

有沒有辦法做到這一點或達到相同的結果?

我把它放在你的.bashrc文件上

function choose_host(){
hosts="host1 ... hostn"
for host in $hosts
do
  echo $(ssh $host 'w|wc -l') $host
done | sort | head -1 | awk '{print $2}'
}

function ssh_host(){
  ssh $(choose_host)
}

choose_host應該給你一個你正在尋找的那個。 這絕對是矯枉過正,但我​​感覺好玩:D sort會根據w|wc -l的結果命令輸出,然后head -1獲取第一行, awk將只打印主機名! 您可以調用ssh_host並自動登錄。

您可以使用桌面上的pdsh命令,該命令在您指定的計算機集上運行指定的命令並返回結果。 這樣你就可以找到負載最小的那個。 這將避免您對每台機器執行ssh並運行w | wc -l w | wc -l

是。 見例如:

ssh me@host "ls /etc | sort" | wc -l

""內的部分是遠程完成的。 之后的部分是本地的。

暫無
暫無

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

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