【问题标题】:automate: finding non-used servers from a list of servers自动化:从服务器列表中查找未使用的服务器
【发布时间】:2009-12-15 23:12:36
【问题描述】:

我在学校可以使用一些 linux 集群。有时他们很忙,有时他们不忙。我通常手动登录每台机器,使用“top”命令查看服务器是否繁忙(查看是否使用了两个内核)。从那里,我执行我的程序以使用一些可以免费运行我的计算的服务器。

我想做的是使用脚本自动执行此过程。假设我有一个服务器列表,比如 server1 ...前两个进程,显示每个服务器的 cpu %)。

任何建议将不胜感激。

【问题讨论】:

  • 这里的许多人很幸运能在一台机器上玩。 :) 我认为 superuser.com 上的 bash-hackers 将能够为您提供更好的帮助。

标签: linux cluster-computing


【解决方案1】:

你的问题让我很好奇。投票关闭后发现w命令。

如果你要做类似的事情

echo Host: host
ssh vinh@host w

在脚本中,为您要访问的每个主机添加一对行,您可以大致得到您想要的。您可以在w 的输出上使用head -1 对其进行微调,以仅查看负载线。


更新,改进:

for h in host1 host2 host3; do
echo host: $h `ssh vinh@$h w | head -1`
done

更新,进一步改进:

for h in host1 host2 host3; do
echo host: $h `ssh vinh@$h uptime`
done

【讨论】:

  • ...或者您可以使用 uptime 代替 w | head -1 ;)
【解决方案2】:

感谢您的建议。这是我为感兴趣的人准备的脚本:

#! /usr/bin/env bash

out=avail.txt
rm -rf ~/$out
minLoad=1
for h in $(cat ~/listofservers.txt); do
    ##w | head -1 | cut -d : -f 5 - | cut -d "," -f 2 -
    load=`ssh username@$h uptime | cut -d : -f 5 - | cut -d "," -f 2 -`
    comparison=`expr $load \< $minLoad`
    if [ comparison ]; then
        echo "$h" >> ~/$out
        ##echo "$load" >> ~/$out
    fi
done

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    • 2015-10-14
    • 2013-12-15
    • 1970-01-01
    相关资源
    最近更新 更多