背景:
公司临时有一套系统,大约有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