Linux 是否可以通过管道将命令的输出从服务器传输到本地计算机?

Linux 是否可以通过管道将命令的输出从服务器传输到本地计算机?,linux,bash,shell,unix,ssh,Linux,Bash,Shell,Unix,Ssh,我的学校提供了一系列功能相同的服务器,它们运行各种操作系统和硬件配置。在大多数情况下,我可以互换使用其中的5个。不幸的是,其他学生倾向于集中在一些机器上,要找到一台没有陷入困境的机器是一件痛苦的事 我想要的是ssh到机器中,运行以下命令: w | wc -l 以粗略估计该服务器上的负载,并使用该信息选择受影响最小的服务器。一种客户端负载均衡器 有没有办法做到这一点或获得相同的结果?您可以使用桌面上的命令,在指定的机器集上运行指定的命令并返回结果。这样你就可以找到一个负载最少的。这将避免您对每台

我的学校提供了一系列功能相同的服务器,它们运行各种操作系统和硬件配置。在大多数情况下,我可以互换使用其中的5个。不幸的是,其他学生倾向于集中在一些机器上,要找到一台没有陷入困境的机器是一件痛苦的事

我想要的是ssh到机器中,运行以下命令:

w | wc -l
以粗略估计该服务器上的负载,并使用该信息选择受影响最小的服务器。一种客户端负载均衡器

有没有办法做到这一点或获得相同的结果?

您可以使用桌面上的命令,在指定的机器集上运行指定的命令并返回结果。这样你就可以找到一个负载最少的。这将避免您对每台计算机执行
ssh
,并运行
w|wc-l

Yes。例如,见:

ssh me@host "ls /etc | sort" | 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\u host
将为您提供所需的主机。这绝对是矫枉过正,但我觉得很好玩:D
sort
将根据
w | wc-l
的结果对输出进行排序,然后
head-1
获取第一行,
awk
将只打印主机名!
您可以调用
ssh\u主机
并自动记录您的日志。

您不是在询问
ssh主机名w | wc-l
?或hostA hostB hostC hostD中主机名的
;执行ssh$hostname w|wc-l;完成了
?嗯,我想我以前从未见过这样使用它。谢谢。如果你有
ruptime
,试试看。实际负载可能比用户数量更好
ssh主机正常运行时间
如果您没有
ruptime
。有关数字的含义,请参阅手册。