自动检测硬盘空间,空间不足时通过企微自动通知

        做服务器运维的小伙伴,有时候可能会遇到某个程序突然挂了,重启也启动不了,这个有可能是服务器硬盘空间被占满了,以下简单shell脚本可实现服务器硬盘空间的检测,配合cron和企微机器人可实现自动预警,避免硬盘被占满问题

shell脚本如下:

#!/bin/bash
maxUse=90    #磁盘最大使用率,超过90%报警
wxWorkKey=xxxx #企业微信机器人key
# 获取所有硬盘列表
disks=$(df -h | grep '^/dev/' | awk '{print $6}')


# 检测每个硬盘的使用情况
for disk in $disks
do
    usage=$(df -h $disk | grep '^/dev/' | awk '{print $5}' | cut -d'%' -f1)
    if [ "$disk" = "/" ]; then
        disk="系统盘"
    fi
    echo "硬盘检测: $disk 已使用: $usage%"
    if [ $usage -gt $maxUse ]; then
      #磁盘空间满时,自动发送通知到企业微信
      curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key='${wxWorkKey} \
       -H 'Content-Type: application/json; charset=UTF-8' \
       -d '
       {
            "msgtype": "text",
            "text": {
                "content": "磁盘检测:'${disk}'已使用'${usage}'%"
            }
       }'
    fi
done

测试效果以及企微机器人Key获取方式如下:

定时执行脚本

可以使用cron来定期执行脚本,实现自动通知功能,由于比较简单,请自行百度

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: K8S 可以使用 Kubernetes API 来检测 pod 的磁盘空间剩余量。如果剩余空间小于 100G,可以使用告警机制来通知管理员进行处理。可以通过使用 Metrics Server,Heapster 和 InfluxDB 等工具来实现对 pod 磁盘空间使用情况的监控。也可以通过自定义脚本来实现对 pod 磁盘空间监控,并在磁盘空间不足采取相应的措施。 ### 回答2: K8S(Kubernetes)是一种广泛使用的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。在K8S中,当检测到一个Pod的磁盘空间剩余空间小于100G,可以采取以下步骤: 1. 首先,通过Kubernetes API获取与该Pod相关的信息,包括Pod的名称、命名空间以及所在的节点。 2. 获取该Pod所在的节点的磁盘空间使用情况。可以使用命令行工具(如df命令)或者调用操作系统相关API获取节点的磁盘空间使用信息。 3. 判断该Pod磁盘空间剩余空间是否小于100G。通过比较Pod的磁盘空间剩余空间和100G的大小来进行判断。 4. 如果磁盘空间剩余空间小于100G,则可以根据实际需求采取相应的措施。例如,可以通过水平扩展Pod的方式来增加磁盘空间,或者将Pod迁移至拥有更大磁盘空间的节点。 5. 在采取措施之后,可以通过监控和日志系统对磁盘空间的使用情况进行实监测,以确保磁盘空间的可用性。 总之,K8S通过获取Pod和节点信息,判断磁盘空间剩余空间是否小于设定的阈值,并根据实际需求采取相应的措施来保证应用程序的正常运行和稳定性。 ### 回答3: 当Kubernetes集群中的Pod磁盘空间剩余空间小于100G,可以采取以下步骤进行检测和处理: 1. 使用Kubernetes命令行工具kubectl,通过以下命令获取Pod磁盘空间的使用情况: ``` kubectl describe pod <pod名称> | grep "Capacity:" | grep -o "[0-9]*\.[0-9]*Gi" ``` 这将返回Pod所使用的磁盘空间容量。 2. 确定Pod所在的节点,可以使用以下命令获取Pod所在的节点名称: ``` kubectl get pod <pod名称> -o jsonpath='{.spec.nodeName}' ``` 这将返回Pod所在的节点名称。 3. 使用节点名称,通过以下命令获取节点上磁盘分区的使用情况: ``` kubectl describe node <节点名称> | grep "Allocatable:" | grep -oP "[0-9]+(?=\w+)" ``` 这将返回节点上磁盘分区的可用空间。 4. 将节点上其他Pod的磁盘使用情况也考虑在内,以确定是否需要调整或迁移其他Pod。 5. 如果发现当前Pod所在的节点磁盘空间不足,并且没有其他可用的节点进行迁移,可以考虑以下几个解决方案: - 扩大节点上的磁盘容量,以提供更多的可用空间。 - 调整Pod的资源请求限制,确保它们不会占用太多的磁盘空间。 - 迁移其他占用磁盘空间较大的Pod至其他节点,以释放空间。 - 在集群中添加新的节点,以提供更多的可用空间。 通过以上方法,可以检测Pod磁盘空间剩余空间大小,并根据实际情况采取相应措施以确保系统的正常运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值