[英]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.