当前位置: 代码迷 >> 综合 >> linux下批量查询所有服务器的磁盘空间占用情况
  详细解决方案

linux下批量查询所有服务器的磁盘空间占用情况

热度:62   发布时间:2024-01-26 03:54:27.0

背景:

公司临时有一套系统,大约有20台linux服务器,由于是创建初期,还在调试软件,日志之类的增长比较快,需要经常查看磁盘空间占用量,但又还没搭建监控系统,所以想了一个比较简单直接的方法

 

思路:

1 找一台服务器作为头号机,并以此对剩下的服务器创建ssh免迷(这一步其实之前做集群的人已经做了,我就省了)

2 编写脚本批量远程执行查询命令并返回写到本地文件A,并在写完之后读取A文件内容

具体如下

创建disk_space.sh并增加如下内容

 

#! /bin/bash

#清空当前文件,目的是为了只保留最后一次的查询结果

echo "" > /opt/disk_space/disk_space.log                         

 #追加当前查询主机ip地址到记录文件
echo  "=============192.168.22.11=========" >> /opt/disk_space/disk_space.log   

利用ssh登陆到192.168.22.11执行查询并将查询结果追加到isk_space.log  文件,后面的【 | grep "/dev/mapper"】是筛选更目录和挂载目录的,可根据实际情况省略或者修改

ssh root@192.168.22.11  df -h | grep "/dev/mapper" >> /opt/disk_space/disk_space.log   

 #追加当前查询主机ip地址到记录文件
echo  "=============192.168.22.12=========" >> /opt/disk_space/disk_space.log   

ssh root@192.168.22.12  df -h | grep "/dev/mapper" >> /opt/disk_space/disk_space.log   

 #追加当前查询主机ip地址到记录文件
echo  "=============192.168.22.13=========" >> /opt/disk_space/disk_space.log   

ssh root@192.168.22.13  df -h | grep "/dev/mapper" >> /opt/disk_space/disk_space.log   

………………………………………………………………………………

……………………………………………………………………………

#查询完成后读取日志文件展现所有服务器磁盘空间占用情况

cat   /opt/disk_space/disk_space.log