首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查ping更新是否有大量机器

检查ping更新是否有大量机器
EN

Unix & Linux用户
提问于 2018-08-27 18:51:42
回答 2查看 88关注 0票数 0

我有大量的机器,我需要检查每一小时的可用性,所以。我得到了近1000台机器,它们被划分为4-5个名称系列,然后是每个节点的编号。比如说,从ab1000到ab1200,从bs3000到bs3892,从zx7800到zx8900等等。目前,我使用的是一个简单的ping脚本,因为我不能在这些节点上保存任何软件来监视(我没有这方面的批准)。因此,在我的代码中,我调用一个一个更新所有机器名称的文件(相信我,我每天都需要这样做,因为机器名称经常发生),并想知道我是否可以使用regex来提及机器,因为它将大大简化我的生活。例如: ab1*,zx*等等。我试着在输入文件中使用相同的内容,但没有多大帮助。还有一个问题是,有时会有一两台机器永久停机,我不需要每次都计算。所以我需要把它排除在我的警戒名单之外。

另外,如果还有什么可以让我知道的话,我可以让警报更加健壮,比如给出列表,因为3/300 sx的机器名为sx 7701,7702,7703。

代码语言:javascript
复制
cat /tmp/node.txt

zx7800
zx7801
zx7802
.....
....
zx8900
bs3000
bs3001

cat nodecheck.sh

for node in `cat /tmp/node.txt`
do
 count=0
 count=$(ping -c 3 $node | grep "100%packet loss"|wc -l)
 if [ $count -ne 0 ]
 then
  echo "$node" >> /tmp/nodedown.txt
 fi
done
EN

回答 2

Unix & Linux用户

发布于 2018-08-27 19:08:00

您需要一个要监视的名称的列表。您可以手动维护此列表,也可以从其他人维护应该运行的计算机列表的地方提取列表。

你可以简化一些事情。ping命令已经返回了退出状态,您可以使用它。另外,您不需要对每个回波进行重定向,每个循环一次就足够了。这有一个额外的好处,即文件是初始化的,并且不包含上次运行时的行。

代码语言:javascript
复制
for node in $(cat /tmp/node.txt); do
  if ! ping -c 3 $node &> /dev/null; then
    echo "$node"
  fi
done > /tmp/nodedown.txt

如果您想要统计数据,可以对它们进行计数,或者使用wc来计算这两个文件中的行数。

代码语言:javascript
复制
echo "$(wc -l < /tmp/nodedown.txt) / $(wc -l < /tmp/node.txt)"
票数 0
EN

Unix & Linux用户

发布于 2018-08-27 19:36:07

替代办法:

  • 福平类似于ping,但是显式地为多个主机的ping设计。
  • 什么,什么是一种实用程序,用于监视机器的升降情况。
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/465144

复制
相关文章

相似问题

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