linux自动化内存监控与告警

文章目录

  • 前言
  • 一、脚本实现
    • 1. shell脚本实现
    • 2. 脚本功能概览
  • 二、设置定时执行
    • 1. 编辑cron任务表
    • 2. 设置定时任务
  • 三、通知结果示例
  • 总结


前言

在当今数字化与网络化日益普及的时代,系统管理与维护成为了确保业务连续性和数据安全的关键环节。其中,监控系统的健康状况与性能表现是必不可少的一环。本文档旨在介绍一个实用的bash脚本,该脚本能够实时监控系统的内存使用情况,并在内存使用率超过预设阈值时,自动发送警告邮件给系统管理员。通过这种自动化监控机制,可以及时发现内存使用问题,避免系统性能的下降或崩溃,从而保障业务的平稳运行。


一、脚本实现

1. shell脚本实现

#!/bin/bash# 配置
THRESHOLD=85        # 内存使用率阈值(%)
MAIL_TO="your-email@example.com"   # 接收邮件的地址# 检查内存使用率是否超过了阈值
MEMORY_USAGE=$(free | awk 'NR==2{printf "%.2f\n", $3*100/$2 }')
if (( $(echo "$MEMORY_USAGE > $THRESHOLD" | bc -l) )); then# 找出占用空间较大的目录LARGE_DIRS=$(du -ah --exclude='/proc' / | sort -hr | head -n 10)# 获取主机的ip地址ip_addr=$(ip addr | grep 'inet ' | awk '{print $2}'| tail -n 1 | grep -oP '\d+\.\d+\.\d+\.\d+')# 构建邮件内容MESSAGE="主机名:$(hostname)\n主机IP:$ip_addr\n\n目前内存使用已经超过:$THRESHOLD%\n目前内存使用率为:$MEMORY_USAGE%\n\n占用内存最多的前10条数据是:\n$LARGE_DIRS"# 发送邮件echo -e "$MESSAGE" | mail -s "内存使用阈值警告" $MAIL_TOecho '邮件发送成功'
fiexit 0

把这个脚本保存为/opt/monitor/memory_monitor.sh文件,并添加执行权限。

chmod a+x /opt/monitor/memory_monitor.sh

2. 脚本功能概览

  • 内存使用率监控:脚本通过/proc/meminfo文件获取系统内存的总使用情况,计算当前内存使用率,并与预先设定的阈值(例如85%)进行比较。
  • 发送警告邮件:当内存使用率超过阈值时,脚本会自动查找系统中占用空间较大的目录,并获取主机的IP地址。然后,构建包含主机名、IP地址、当前内存使用率以及占用内存最多的前10个目录的邮件内容,通过mail命令发送给指定的邮箱地址。
  • 自动化与便捷性:通过将此脚本集成到系统任务调度中(如通过cron任务),可以实现定期监控与即时响应,极大地提高了系统管理的效率与响应速度。

二、设置定时执行

1. 编辑cron任务表

crontab -e

2. 设置定时任务

设置每天9点执行/opt/monitor/memory_monitor.sh脚本

0 9 * * * /opt/monitor/memory_monitor.sh

这样设置后每天9点都会执行/opt/monitor/memory_monitor.sh脚本,如果检测到内存使用超过设置阈值就会发邮件通知。


三、通知结果示例

通知结果示例如下。

在这里插入图片描述


总结

通过上述步骤,你可以轻松地在自己的服务器上设置内存监控和告警。这将帮助你在系统面临压力时迅速采取行动,防止潜在的问题升级为严重的故障。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MT3056 交换序列

思路&#xff1a; 与题目 MT3055 交换排列 类似 代码&#xff1a; #include <bits/stdc.h> using namespace std; const int N 1e4 10; int n, fa[N], b[N], d[N]; void init(int n) {for (int i 1; i < n; i)fa[i] i; } int find(int x) {return x fa[x] ?…

PostgreSQL 查询字段as别名驼峰大写未生效的坑

as别名驼峰大写的错误示例: select id, game_name as gameName from app_projects;运行效果: as别名驼峰大写的正确示例: select id, game_name as "gameName" from app_projects;运行效果: 代码示例:

1.10编程基础之简单排序--02:奇数单增序列

OpenJudge - 02:奇数单增序列http://noi.openjudge.cn/ch0110/02/ 描述 给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。 输入 共2行: 第1行为 N; 第2行为 N 个正整数,其间用空格间隔。 输出 增序输出的奇数序列,数据之间以逗号间隔。数…

springboot 旅游导航系统-计算机毕业设计源码69476

目 录 第 1 章 引 言 1.1 选题背景 1.2 研究现状 1.3 论文结构安排 第 2 章 系统的需求分析 2.1 系统可行性分析 2.1.1 技术方面可行性分析 2.1.2 经济方面可行性分析 2.1.3 法律方面可行性分析 2.1.4 操作方面可行性分析 2.2 系统功能需求分析 2.3 系统性需求分析…

「解析」Cosine-Warmup 学习率策略

参考论文&#xff1a;SGDR: Stochastic Gradient Descent with Warm Restarts Bag of Tricks for Image Classification with Convolutional Neural Networks 梯度下降算法需要我们设置一个值&#xff0c;用来控制权重更新幅度&#xff0c;我们将其称之为学习率。它是控制模型学…

PP网/尼龙网检测方案居然如此高效?

硅胶套是一种由硅胶材料制成的套管&#xff0c;通常用于保护、密封或绝缘电子元件、电线、电缆等。硅胶具有优异的耐高温、耐低温、耐化学腐蚀和绝缘性能&#xff0c;因此硅胶套常被用于需要抗高温、耐磨、耐腐蚀的环境中。硅胶套的柔软性和良好的弹性使其适合于包裹各种形状的…

昇思学习打卡-14-ResNet50迁移学习

文章目录 数据集可视化预训练模型的使用部分实现 推理 迁移学习&#xff1a;在一个很大的数据集上训练得到一个预训练模型&#xff0c;然后使用该模型来初始化网络的权重参数或作为固定特征提取器应用于特定的任务中。本章学习使用的是前面学过的ResNet50&#xff0c;使用迁移学…

EtherCAT笔记(六)—— 分布时钟之一

目录 1. 分布时钟的功能 2. 分布时钟涉及到的概念 2.1 系统时间 2.2 参考时钟 & 从时钟 2.3 主站时钟 2.4 本地时钟 2.4.1 本地时钟的初始偏移量 2.4.2 本地时钟的时钟漂移 2.5 本地系统时间 2.6 传输延时 人们理解知识的一个阻碍就是那些从没见过的概念和这些概念的随意使…

【排序 - 快速排序】

快速排序&#xff08;Quick Sort&#xff09;是一种高效的排序算法&#xff0c;它基于分治&#xff08;Divide and Conquer&#xff09;的策略。这种排序算法的核心思想是选择一个基准元素&#xff0c;将数组分割成两部分&#xff0c;使得左边的元素都小于等于基准元素&#xf…

9月Sui Builder House新加坡站开启报名

本次以建设者为主的活动包括&#xff1a; 与Sui社区互动的机会庆祝Sui生态成就的时刻公布和发布新产品建设者学习、网络交流、分享和启动新项目的机会 该活动与Token2049新加坡同期进行&#xff0c;Token2049是一个全球性会议系列&#xff0c;汇集加密货币的决策者们交换想法…

LabVIEW与ABB工业机器人据监控

​1. 前言 随着工业自动化的发展&#xff0c;工业机器人在制造业中的应用越来越广泛。为了实现对工业机器人的高效监控和控制&#xff0c;本文介绍了利用OPC&#xff08;OLE for Process Control&#xff09;服务器将ABB工业机器人与LabVIEW连接起来的解决方案。通过OPC服务器…

Clion中怎么切换不同的程序运行

如下图&#xff0c;比如这个文件夹下面有那么多的项目&#xff1a; 那么我想切换不同的项目运行怎么办呢&#xff1f;如果想通过下图的Edit Configurations来设置是不行的&#xff1a; 解决办法&#xff1a; 如下图&#xff0c;选中项目的CMakeLists.txt&#xff0c;右键再点击…

022-GeoGebra中级篇-几何对象之直线与坐标轴

本文主要介绍一下GeoGebra中直线的常见输入方式&#xff0c;比如工具栏输入、表达式输入、函数输入&#xff0c;最后再把坐标轴的调用简单介绍一下。内容比起传统的教学更偏向于实战一些&#xff0c;若感兴趣欢迎继续阅读。 目录 一、直线1. 关于工具栏绘制&#xff08;1&#…

Apache配置与应用(优化apache)

Apache配置解析&#xff08;配置优化&#xff09; Apache链接保持 KeepAlive&#xff1a;决定是否打开连接保持功能&#xff0c;后面接 OFF 表示关闭&#xff0c;接 ON 表示打开 KeepAliveTimeout&#xff1a;表示一次连接多次请求之间的最大间隔时间&#xff0c;即两次请求之间…

78000A 信号分析软件

思仪(Ceyear) 78000A 信号分析软件 78000A 信号分析软件是一款能够在电脑上运行的应用软件&#xff0c;预留了开放式的 SCPI 控制指令&#xff0c;可以远程控制信号/频谱分析仪采集数据&#xff0c;也可以回放仿真数据或者采集的历史数据文件&#xff0c;执行通用频谱测量、矢…

圆屋顶下,神的盛宴

你有没有想过&#xff0c;自己头顶的是什么&#xff1f; 其实&#xff0c;有很多种可能&#xff1a; 比如&#xff0c;你头顶的当然就是你的头发&#xff1b;但也有可能你剃了个光头&#xff0c;所以你的头顶是秃的&#xff0c;不过没关系&#xff0c;你如果在房间里&#xff…

viscode-插件

vue组件生成&#xff1a; vue.json {"vue-template": {"prefix": "vue","body": ["<template>"," <div class\"$1\">$2</div>","</template>","","…

嵌入式应用开发之代码整洁之道

前言&#xff1a;本系列教程旨在如何将自己的代码写的整洁&#xff0c;同时也希望小伙伴们懂如何把代码写脏&#xff0c;以备不时之需&#xff0c;同时本系列参考 正点原子 &#xff0c; C代码整洁之道&#xff0c;编写可读的代码艺术。 #好的代码的特点 好的代码应该都有着几…

联想拯救者Y7000 IRX9 笔记本接口功能介绍

适用机型&#xff1a;Legion Y7000 IRX9; 83JJ&#xff1b; USB&#xff08;3.2 Gen 1&#xff09;Type-接口摄像头开关组合音频插孔 多用于USB Type-C接口 以太网接口 多用途USB Type-C接口&#xff08;支持USB Power Delivery&#xff09;HDMI接口USB&#xff08;3.2 Gen 1&…

学圣学最终的目的是:达到思无邪的状态( 纯粹、思想纯正、积极向上 )

学圣学最终的目的是&#xff1a;达到思无邪的状态&#xff08; 纯粹、思想纯正、积极向上 &#xff09; 中华民族&#xff0c;一直以来&#xff0c;教学都是以追随圣学为目标&#xff0c;所以中华文化也叫圣学文化&#xff0c;是最高深的上等学问&#xff1b; 圣人那颗心根本…