一键监控多台服务器磁盘使用情况的神奇脚本!

在当今这个数据为王的时代,服务器的磁盘空间使用情况成为了系统管理员日常关注的重要指标之一。磁盘空间不足可能导致服务中断,数据丢失,甚至整个系统崩溃。因此,及时监控磁盘空间,预防潜在风险,成为了每个系统管理员的必修课。

今天,我将为大家分享一个神奇的Bash脚本,它不仅可以一键监控多台服务器的磁盘使用情况,还能在磁盘使用率超过设定阈值时自动发送警报邮件。这个脚本将极大提升系统管理员的工作效率,让你轻松驾驭海量服务器磁盘管理!

图片

一、脚本功能简介

该脚本通过SSH远程连接到多台服务器,执行df -h命令获取磁盘使用情况,然后解析输出结果,判断各分区的使用率。如果某个分区的使用率超过了预设的阈值(默认为80%),脚本将自动发送一封警报邮件给管理员,以便及时采取措施。

二、脚本代码详解

下面是脚本的完整代码,我将逐行进行注释和讲解:

#!/bin/bash  # 设定磁盘使用率的最大阈值,默认为80%  FSMAX="80"  # 设定远程连接的用户名,这里为root  remote_user='root'  # 设定要监控的服务器IP地址列表,替换(IP地址列表)为实际的IP地址,多个IP之间用空格分隔  remote_ip=(IP地址列表)   # 初始化服务器IP地址的索引变量  ip_num='0'    # 循环遍历服务器IP地址列表  while [ "$ip_num" -le "$(expr ${#remote_ip[@]} - 1)"]  do    # 初始化读取行数变量    read_num='1'    # 通过SSH远程连接到服务器,并执行df -h命令获取磁盘使用情况,结果重定向到临时文件    ssh "$remote_user"@"${remote_ip[$ip_num]}" df -h > /tmp/diskcheck_tmp    # 使用grep, awk和sed命令解析磁盘使用情况,提取出各分区的使用率并去除百分号,结果重定向到另一个临时文件    grep '^/dev/*' /tmp/diskcheck_tmp | awk '{print $5}' | sed 's/\%//g' > /tmp/diskcheck_num_tmp        # 循环读取磁盘使用率,并进行判断    while [ "$read_num" -le $(wc -l < /tmp/diskcheck_num_tmp) ]    do      # 提取某一行的磁盘使用率      size=$(sed -n "$read_num"p /tmp/diskcheck_num_tmp)      # 判断磁盘使用率是否超过阈值      if [ "$size" -gt "$FSMAX" ]      then        # 如果超过阈值,则发送警报邮件(此处代码有误,稍后修正)      fi      # 提取对应的磁盘分区信息,并追加到邮件内容中(此处代码有误,稍后修正)      # ...(省略部分代码)            # 更新读取行数变量      read_num=$(expr $read_num + 1)    done    # 更新服务器IP地址的索引变量    ip_num=$(expr $ip_num + 1)  done

注意:上述代码中的邮件发送部分存在错误和不完整,接下来我们将对其进行修正和完善。

三、修正和完善脚本

  1. 修正邮件发送部分的代码,确保能够正确发送包含警报信息的邮件。

  2. 完善邮件内容,包括服务器IP地址、超过阈值的磁盘分区以及实际使用率等信息。

修正后的代码如下:​​​​​​​

#!/bin/bash  FSMAX="80"  remote_user='root'  remote_ip=(IP地址列表)  ip_num='0'  MAIL_CONTENT=""  # 初始化邮件内容变量    while [ "$ip_num" -le "$(expr ${#remote_ip[@]} - 1)" ]; do    read_num='1'    ssh "$remote_user"@"${remote_ip[$ip_num]}" df -h > /tmp/diskcheck_tmp    grep '^/dev/' /tmp/diskcheck_tmp | awk '{print $5}' | sed 's/\%//g' > /tmp/diskcheck_num_tmp        while [ "$read_num" -le $(wc -l < /tmp/diskcheck_num_tmp) ]; do      size=$(sed -n "$read_num"p /tmp/diskcheck_num_tmp)      if [ "$size" -gt "$FSMAX" ]; then        partition=$(sed -n "$read_num"p /tmp/diskcheck_tmp | awk '{print $6}')  # 提取分区信息        usage=$(sed -n "$read_num"p /tmp/diskcheck_tmp | awk '{print $5}')  # 提取使用率信息(带百分号)        MAIL_CONTENT="${MAIL_CONTENT}服务器IP: ${remote_ip[$ip_num]}, 磁盘分区: $partition, 使用率: $usage\n"      fi      read_num=$(expr $read_num + 1)    done    ip_num=$(expr $ip_num + 1)  done    if [ -n "$MAIL_CONTENT" ]; then    echo "$MAIL_CONTENT" | mail -s "磁盘使用率警报" admin  # 发送邮件给管理员  fi

四、总结

通过以上修正和完善,我们得到了一个功能强大的Bash脚本,能够一键监控多台服务器的磁盘使用情况,并在磁盘使用率超过设定阈值时自动发送警报邮件。这个脚本将极大提升系统管理员的工作效率,让你轻松驾驭海量服务器磁盘管理!赶快试试吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/626617.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

上下左右翻转照片以及标注信息扩充数据集

目录 前言&#xff1a; 示例项目数据结构&#xff1a; 源代码&#xff1a; 运行代码后生成的项目结构&#xff1a; 效果&#xff1a; 前言&#xff1a; 使用yolo训练模型时&#xff0c;遇到数据集很小的情况&#xff08;一两百张&#xff09;&#xff0c;训练出来的模型效…

2024年电工杯数学建模B题思路 中国电机工程学会杯建模思路分析

文章目录 1 赛题思路2 比赛日期和时间3 竞赛信息4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题 5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 比赛日期和时间 报名截止时间&#xff1a;2024…

四天学会JS高阶(学好vue的关键)——作用域解构箭头函数(理论+实战)(第一天)

一、作用域 提到作用域&#xff08;作用域又分为局部作用域和全局作用域&#xff09;&#xff0c;就要想到变量。因为作用域规定了变量能够被访问的范围&#xff08;也就是作用域是为变量而服务的&#xff09;&#xff0c;为了避免全局变量污染这一情况&#xff0c;所以需要使…

关闭 Visual Studio Code 项目中 的eslint的语法校验 lintOnSave: false;; 项目运行起来之后 自动打开浏览器 端口

1、在 vue.config.js 配置 一个属性 lintOnSave: false 2、配置两个属性 open: true, // 自动打开浏览器 port: 3000 // 端口 port 端口号根据自己的项目实际开发来 配置

C++类细节,反汇编,面试题02

文章目录 2. 虚函数vs纯虚函数3. 重写vs重载vs隐藏3.1. 为什么C可以重载&#xff1f; 4. struct vs union4.1. 为什么要内存对齐&#xff1f; 5. static作用6. 空类vs空结构体6.1. 八个默认函数&#xff1a;6.2. 为什么空类占用1字节 7. const作用7.1 指针常量vs常量指针vs常量…

用友网络的危与机:2023年亏损约10亿元,王文京面临严肃拷问

“企业在新的产业浪潮来临时&#xff0c;应该主动推进新阶段的产品和业务创新&#xff0c;这样才能够在新的浪潮成为主流的时候&#xff0c;走到行业前面&#xff0c;否则就会从产业发展的潮流中掉下来”。用友网络创始人王文京&#xff0c;曾用“冲浪理论”形容一家企业成功的…

国内好用的测试用例管理工具有哪些?

目前市面上的测试用例管理工具有很多&#xff0c;但由于针对的项目、领域、目标用户&#xff0c;功能也并不一致&#xff0c;所以选择一款适合的测试管理平台并不轻松。做好这件事&#xff0c;首先要需求明确你用测试管理工具干什么&#xff1f;最终想要达到什么目标&#xff1…

C语言学习(八)typedef 虚拟内存 malloc/free

目录 一、typedef 类型重定义&#xff08;一&#xff09;使用&#xff08;二&#xff09;define和typedef的区别1. 编译处理的阶段不同2. 功能不同 二、虚拟内存&#xff08;一&#xff09;虚拟内存分布&#xff08;二&#xff09;内存分布1. 静态分配2. 动态分配 三、malloc/f…

用sunoAI写粤语歌的方法,博主已经亲自实践可行

粤语歌还是很好听的&#xff0c;那么如何使用suno进行粤语歌的创作呢&#xff1f; 本文和大家进行分享下如何进行粤语歌曲的创作。 访问地址如下&#xff08;电脑端/手机端一个地址&#xff09;&#xff1a; ​https://suno3.cn/#/?i8NCBS8_WXTT 在微信浏览器中也可以直接…

RT-DETR改进教程|加入SCNet中的SCConv[CVPR2020]自校准卷积模块!

⭐⭐ RT-DETR改进专栏|包含主干、模块、注意力机制、检测头等前沿创新 ⭐⭐ 一、 论文介绍 论文链接&#xff1a;http://mftp.mmcheng.net/Papers/20cvprSCNet.pdf 代码链接&#xff1a;https://gitcode.com/MCG-NKU/SCNet/ 文章摘要&#xff1a; CNN的最新进展主要致力于设计更…

文字转成活码的3步操作,手机扫码即可查看文本信息

现在经常会通过二维码的方式来传递通知的文字信息&#xff0c;只需要分享文字生成二维码的图片到微信群或者印刷出来&#xff0c;其他人就可以通过扫码来查看文字内容&#xff0c;有利于其他人更快速的获取信息。 目前文本静态码无法通过微信来扫码展示&#xff0c;那么想要解…

服务器被后台爆破怎么处理

服务器后台遭受密码爆破攻击是网络安全中常见的威胁之一&#xff0c;这种攻击通过不断尝试不同的用户名和密码组合来破解系统登录凭证&#xff0c;一旦成功&#xff0c;攻击者便能非法访问系统资源。 本文将介绍如何识别此类攻击&#xff0c;并采取有效措施进行防御&#xff0c…

ETL-kettle数据转换及组件使用详解

目录 一、txt文本转换成excel 1、新建、转换 2、构建流程图 3、配置数据流图中的各个组件 3.1、配置文件文本输入组件 3.2、 配置Excel输出组件 4、保存执行 二、excel转换成mysql &#xff08;1&#xff09;在MySQL数据库中创建数据库&#xff0c;这个根据自身情况。我…

(python)cryptography-安全的加密

前言 cryptography 是一个广泛使用的 Python 加密库&#xff0c;提供了各种加密、哈希和签名算法的实现。它支持多种加密算法&#xff0c;如 AES、RSA、ECC 等&#xff0c;以及哈希函数&#xff08;如 SHA-256、SHA-384 等&#xff09;和数字签名算法(如 DSA、ECDSA 等). 目录 …

一本书打通SLAM在智能汽车/自动驾驶领域应用

自动驾驶技术已成为当今数字化时代汽车行业的热点话题之一。随着技术的不断成熟&#xff0c;越来越多的车辆采用激光SLAM&#xff08;即时定位与地图构建&#xff09;和视觉SLAM技术&#xff0c;实现更高层次的智能网联汽车。SLAM技术在智能网联汽车中的应用是非常重要的&#…

[XYCTF新生赛]-PWN:baby_gift解析(函数调用前需清空eax)

查看保护 查看ida 这里有一处栈溢出&#xff0c;并且从汇编上看&#xff0c;程序将rbp0x20处设置为了rdi&#xff0c;让我们可以控制rdi的值。而程序没有可利用的pop。 完整exp&#xff1a; from pwn import* pprocess(./babygift) premote(gz.imxbt.cn,20833) printf_plt0x4…

如何通过ETL工具对数据进行去重

在数据处理流程中&#xff0c;数据去重是一个至关重要的环节&#xff0c;它能够确保数据分析的准确性和效率。ETL&#xff08;Extract, Transform, Load&#xff09;工具作为数据集成的重要组成部分&#xff0c;提供了强大的功能来帮助用户实现数据的抽取、转换和加载&#xff…

【Unity Shader入门精要 第7章】基础纹理(一)

1. 纹理映射 每一张纹理可以看作拥有一个属于自己的2D坐标空间&#xff0c;其横轴用U表示&#xff0c;纵轴用V表示&#xff0c;因此也称为UV坐标空间。 UV空间的坐标范围为[0&#xff0c;0]到[1&#xff0c;1]&#xff0c;在Unity中&#xff0c;UV空间也是从左下到右上&#…

神经网络复习--卷积神经网络及其扩展

文章目录 卷积卷积网络反向传播已知池化层误差&#xff0c;反向求上一层隐藏层误差已知卷积层的误差&#xff0c;推导该层的W, b的梯度 注意力机制Transformer卷积变体 卷积 卷积神经网络是一个多层的神经网络&#xff0c;每层由多个二维平面组成&#xff0c;每个平面由多个独…

免费pr相册模板mogrt|手机壁纸AI绘画摄影作品照片展示模板视频素材

pr相册模板mogrt&#xff0c;手机壁纸、电脑桌面壁纸、AI绘画、摄影作品、照片展示模板视频素材。 Premiere Pro 2023及以上版本。 全高清&#xff08;19201080&#xff09;分辨率/30fps。 通用表达式&#xff08;适用于所有特效语言&#xff09;。 免费下载&#xff1a;https…