Shell 脚本应用(二)

news2024/11/25 20:22:50

实验案例:使用Shell脚本监控主机

实验环境

某公司随着业务的不断发展,所使用的Linux服务器也越来越多,管理员希望编写一个简单的性 能监控脚本,放到各服务器中,当监控指标出现异常时发送告警邮件。

需求描述

>编写名为sysmon.sh的Shell监控脚本.

>监控内容包括CPU使用率,内存使用率、根分区的磁盘占用率。

>百分比只需精确到个位,如7%.12%、23%等。

>出现以下任一情况时告警:磁盘占用率超过90%.CPU使用率超过80%.内存使用率超过 90%.

>告警邮件通过mail命令发送到monitor@bdqn.com.

>结合crond 服务,每半小时执行一次监控脚本。

操作步骤

expr 100 - $(mpstat | awk '{print $12}' | awk -F. '{print $1}' | tail -1)

查看CPU使用率

expr $(free | grep "Mem:" | awk '{print $3}') \* 100 / $(free | grep "Mem:" | awk '{print $2}')

查看内存使用率

 df -hT | grep "/$" | awk '{print $6}' | awk -F% '{print $1}'

查看根分区的磁盘占用率

 编写sysmon.sh脚本

[root@lgcllc ~]# vim sysmon.sh   //编辑监控脚本 
#!/bin/bash
#监控CPU
CPU=$(expr 100 - $(mpstat | awk '{print $12}' | awk -F. '{print $1}' | tail -1) )
echo "CPU使用率:$CPU %"

#监控内存
MEM=$(expr $(free | grep "Mem:" | awk '{print $3}') \* 100 / $(free | grep "Mem:" | awk '{print $2}') )
echo "内存使用率:$MEM %"

#监控磁盘
DUG=$(df -hT | grep "/$" | awk '{print $6}' | awk -F% '{print $1}')
echo "磁盘占用率:$DUG %"

#设置警告日志文件,告警邮箱
#日志文件的变量
ALOG="/mnt/alert.txt"
#发送到邮箱的变量
AMAIL="root"
#判断是否记录告警邮箱
if [ $CPU -ge 80 ]
then
   echo "CPU使用率:$CPU %" >> $ALOG
fi

if [ $MEM -ge 90 ]
then
   echo "内存使用率:$MEM %" >> $ALOG
fi

编辑好sysmon.sh脚本如图:

 

 添加可执行权限:

[root@lgcllc ~]# chmod +x sysmon.sh 

加入crond服务

[root@lgcllc ~]# crontab -e   //编写脚本 每半小时执行一次监控脚本

30 * * * * /root/sysmon.sh

脚本运行结果

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

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

相关文章

【技术】MySQL 日期时间操作

MySQL 日期时间操作 MySQL 系统时间MySQL 时间格式化MySQL 年月日时分秒周MySQL 日期计算时分秒时差日期差日期加减 MySQL 系统时间 now():系统时间,年月日时分秒current_date:系统时间,年月日current_time:系统时间&…

标准库中的string类(上)——“C++”

各位CSDN的uu们好呀,好久没有更新小雅兰的C专栏的知识啦,接下来一段时间,小雅兰就又会开始更新C这方面的知识点啦,以及期末复习的一些知识点,下面,让我们进入西嘎嘎string的世界吧!!…

硬件基础-电感

电感 目录 1.原理 2.作用 3.高频等效模型 4. 直流偏置特性 5.器件选型 6.电感损耗 7.功率电感 8.贴片电感 9.共模电感 10.差模电感 1.原理 电感是阻碍电流的变化,储能 电感的磁芯决定了电感的饱和电流,也决定了电感值与电流的变化曲线,磁滞损…

Leetcode—77.组合【中等】

2023每日刷题&#xff08;六十五&#xff09; Leetcode—77.组合 算法思想 实现代码 class Solution { public:vector<vector<int>> combine(int n, int k) {vector<vector<int>> ans;vector<int> path;function<void(int)> dfs [&…

linux 驱动——杂项设备驱动

杂项设备驱动 在 linux 中&#xff0c;将无法归类的设备定义为杂项设备。 相对于字符设备来说&#xff0c;杂项设备的主设备号固定为 10&#xff0c;而字符设备不管是动态分配还是静态分配设备号&#xff0c;都会消耗一个主设备号&#xff0c;比较浪费主设备号。 杂项设备会自…

PyCharm添加自动函数文档注释

目录 1、背景2、开启PyCharm自动函数文档注释 1、背景 规范的函数文档注释有助于他人理解代码&#xff0c;便于团队协作、提高效率。但如果我们自己手写函数文档注释将非常耗时耗力。PyCharm安装后默认没有开启自动化函数文档注释&#xff0c;需要我们开启 2、开启PyCharm自动…

JavaWeb笔记之前端开发JavaScript

一、引言 1.1 简介 JavaScript一种解释性脚本语言&#xff0c;是一种动态类型、弱类型、基于原型继承的语言&#xff0c;内置支持类型。 它的解释器被称为JavaScript引擎&#xff0c;作为浏览器的一部分&#xff0c;广泛用于客户端的脚本语言&#xff0c;用来给HTML网页增加…

LVM Sequential Modeling Enables Scalable Learning for Large Vision Models

LVM: Sequential Modeling Enables Scalable Learning for Large Vision Models TL; DR&#xff1a;本文提出一种纯视觉的序列建模方法 LVM&#xff0c;不需要任何文本数据。通过 visual sentences 的形式&#xff0c;统一图像/视频/标注/3D数据&#xff0c;使用 VQGAN 将视觉…

网上平台交易伦敦金靠谱吗?

随着科技的发展&#xff0c;网络交易已经成为了我们生活中的一部分。在金融领域&#xff0c;许多投资者也早已开始转向在线交易平台进行投资交易&#xff0c;其中就包括伦敦金。然而&#xff0c;面对众多的网上交易平台&#xff0c;投资者们往往会产生这样的疑问&#xff1a;“…

4.3 C++对象模型和this指针

4.3 C对象模型和this指针 4.3.1 成员变量和成员函数分开存储 在C中&#xff0c;类内的成员变量和成员函数分开存储 只有非静态成员变量才属于类的对象上 #include <iostream>class Person { public:Person() {mA 0;} //非静态成员变量占对象空间int mA;//静态成员变量…

【spark】spark内核调度(重点理解)

目录 spark内核调度DAGDAG的宽窄依赖和阶段划分内存迭代计算面试题Spark是怎样做内存计算的&#xff1f;DAG的作用是什么&#xff1f;Stage阶段划分的作用&#xff1f;Spark为什么比MapReduce快 spark并行度如何设置并行度&#xff1a;spark.default.parallelism集群中如何规划…

P1 H264码流结构分析 (上)

目录 前言 01 什么是码流结构 02 H264帧类型的区别 03 片slice 前言 从本章开始我们将要学习嵌入式音视频的学习了 &#xff0c;使用的瑞芯微的开发板 &#x1f3ac; 个人主页&#xff1a;ChenPi &#x1f43b;推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ &#x1f525…

官方指定Jmeter配置JVM堆内存方式

1.概述 在使用Jmeter做性能测试过程中&#xff0c;可能会应为默认设置的堆内存值较小出现堆内存溢出问题&#xff0c;此时解决的方式有两种&#xff0c;分布式测试和调大堆内存。下面介绍官方推荐调整堆内存方法。 2.调整Jmeter堆内存 2.1.介绍官方推荐堆内存调整方法(jmete…

IDEA Community html文件里的script标签没有syntax highlighting的解决方案

在网上找到的解决方法有的是针对Ultimate版本才可以下载的plugin&#xff0c;对我所用的Community版本无法生效&#xff0c;找了一圈最后在stackoverflow上找到一个有效的方案&#xff0c;给需要的小伙伴分享一下&#xff1a;IntelliJ Community Edition: Javascript syntax hi…

Jenkins 执行远程脚本的插件—SSH2 Easy

SSH2 Easy 是什么&#xff1f; SSH2 Easy 是一个 Jenkins 插件&#xff0c;它用于在 Jenkins 构建过程中通过 SSH2 协议与远程服务器进行交互。通过该插件&#xff0c;用户可以在 Jenkins 的构建过程中执行远程命令、上传或下载文件、管理远程服务器等操作。 以下是 SSH2 Eas…

7-4 JAVA-水仙花数(Java for PTA)

水仙花数是指一个N位正整数&#xff08;7≥N≥3&#xff09;&#xff0c;它的每个位上的数字的N次幂之和等于它本身。例如&#xff1a;153135333。 要求编写程序&#xff0c;计算所有N位水仙花数。 输入格式: 输入一个正整数N&#xff08;3≤N≤7&#xff09;。 输出格式: …

java并发编程四 Monitor 概念,api介绍与线程状态转换

Monitor 概念 Java 对象头 以 32 位虚拟机为例子&#xff1a; 普通对象 数组对象 其中 Mark Word 结构为 64 位虚拟机 Mark Word 小故事 故事角色 老王 - JVM小南 - 线程小女 - 线程房间 - 对象房间门上 - 防盗锁 - Monitor房间门上 - 小南书包 - 轻量级锁房间门上 -…

Elasticsearch常见面试题

文章目录 1.简单介绍下ES&#xff1f;2.简单介绍当前可以下载的ES稳定版本&#xff1f;3.安装ES前需要安装哪种软件&#xff1f;4.请介绍启动ES服务的步骤&#xff1f;5.ES中的倒排索引是什么&#xff1f;6. ES是如何实现master选举的&#xff1f;7. 如何解决ES集群的脑裂问题8…

本地文件内容搜索神器AnyTXT Searcher如何搭建与远程访问

文章目录 前言1. AnyTXT Searcher1.1 下载安装AnyTXT Searcher 2. 下载安装注册cpolar3. AnyTXT Searcher设置和操作3.1 AnyTXT结合cpolar—公网访问搜索神器3.2 公网访问测试 4. 固定连接公网地址 前言 你是否遇到过这种情况&#xff0c;异地办公或者不在公司&#xff0c;想找…

ubuntu qt 源码编译

官方源码下载地址 : 源码地址 选择要下载的版本 dmg结尾的是MacOS系统里使用的Qt库&#xff0c;qt-everywhere-opensource-src-4.7.0是Qt源码包&#xff0c;有zip和tar.gz两个压缩格式的&#xff0c;两个内容是一样的&#xff0c;只是zip一般在Windows下比较流行&#xff0c;…