首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >automate:从服务器列表中查找未使用的服务器

automate:从服务器列表中查找未使用的服务器
EN

Stack Overflow用户
提问于 2009-12-16 07:12:37
回答 2查看 130关注 0票数 1

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

我想做的是用一个脚本自动完成这个过程。假设我有一个服务器列表,比如server1 ...服务器N。我想按顺序登录到这些服务器中的每一个,运行一些命令( top ?),并输出未使用的服务器列表(或输出每个服务器的前两个进程,显示cpu % )。

任何建议都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-12-17 03:15:59

谢谢你的建议。对于感兴趣的人,下面是我的脚本:

代码语言:javascript
复制
#! /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
票数 0
EN

Stack Overflow用户

发布于 2009-12-16 07:29:36

你的问题让我很好奇。在投票决定关闭它之后,我找到了w命令。

如果你要做像这样的事情

代码语言:javascript
复制
echo Host: host
ssh vinh@host w

在脚本中,对于您想要访问的每个主机,只需一行代码,就可以大致得到您想要的结果。您可以在w的输出中使用head -1稍微调整一下,以便只看到加载行。

更新,改进:

代码语言:javascript
复制
for h in host1 host2 host3; do
echo host: $h `ssh vinh@$h w | head -1`
done

更新,改进了更多:

代码语言:javascript
复制
for h in host1 host2 host3; do
echo host: $h `ssh vinh@$h uptime`
done
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1911144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档