linux监控脚本+自动触发邮件发送
linux脚本
需求:
CPU 负载:使用
uptime
命令,我们可以清楚地了解系统的 CPU 负载情况。这个命令会显示系统在过去 1 分钟、5 分钟和 15 分钟的平均负载。高负载可能意味着系统正在处理大量的任务,可能会导致性能下降或服务响应延迟。内存使用:通过
free -m
命令,我们可以以 MB 为单位查看系统的内存使用情况,包括已使用内存、空闲内存、缓存和交换空间。这有助于我们判断系统是否需要更多的内存资源,或者是否存在内存泄漏等问题。磁盘使用:
df -h
命令为我们提供了磁盘空间使用情况的信息,让我们清楚地知道各个文件系统的使用比例。当磁盘空间接近饱和时,会严重影响系统的正常运行,甚至导致服务无法写入数据。网络状态:
ifconfig
命令可以让我们查看网络接口的状态,包括 IP 地址、MAC 地址、接收和发送的数据包数量等,帮助我们确保网络连接的正常。服务状态检查:你可以添加检查服务是否正在运行的功能,比如检查
Apache
服务器是否正在运行,可以使用systemctl status apache2
或service apache2 status
命令,并将结果添加到报告中。
开发脚本内容:
#!/bin/bash# 定义报告文件和错误日志文件 REPORT_FILE="/root/linux_inspection_report.txt" HTML_REPORT="/root/linux_inspection_report.html" ERROR_LOG="/root/linux_inspection_error.log" DATE=`date "+%Y-%m-%d %H:%M:%S"`> $REPORT_FILE > $ERROR_LOGcat<<EOF > $HTML_REPORT <!DOCTYPE html> <html> <head> <title>Linux System Inspection Report</title> </head> <body> <h1>Linux System Inspection Report</h1> <p>Date:$DATE</p> EOF#uptime echo "<h2>System load</h2>" >> $HTML_REPORTif LOAD=`uptime 2>> $ERROR_LOG` thenecho "<p>$LOAD</p>" >> $HTML_REPORT elseecho "<p>Error occurred. Check $ERROR_LOG</p>" >> $HTML_REPORT fiecho "<h2>Disk Usage</h2>" >> $HTML_REPORT if DISK_USAGE=`df -h 2>> $ERROR_LOG` thenecho "<p>$DISK_USAGE</p>" >> $HTML_REPORT elseecho "<p>Error occurred. Check $ERROR_LOG</p>" >> $HTML_REPORT fiecho "<h2>Memory Usage</h2>" >> $HTML_REPORT if MEMORY_USAFE=`free -m 2>> $ERROR_LOG` thenecho "<p>$MEMORY_USAFE</p>" >> $HTML_REPORT elseecho "<p>Error occurred. Check $ERROR_LOG</p>" >> $HTML_REPORT fiecho "<h2>Network Status</h2>" >> $HTML_REPORT if NETWORK_STATUS=`ifconfig 2>> $ERROR_LOG` thenecho "<p>$NETWORK_STATUS</p>" >> $HTML_REPORT elseecho "<p>Error occrred. Check $ERROR_LOG</p>" >> $HTML_REPORT fiecho "<h2>Nginx Service Status</h2>" >> $HTML_REPORT if NGINX_STATUS=`systemctl status nginx 2>> $ERROR_LOG` thenecho "<p>$NGINX_STATUS</p>" >> $HTML_REPORT elseecho "<p>Error occurred. Check $ERROR_LOG</p>" >> $HTML_REPORT fi# echo "</body></html>
脚本文件需要设置可执行权限
# chmod +x jiankong.sh
执行结果如下:
[root@hcss-ecs- ~]# ll
total 32
-rwxr-xr-x 1 root root 1725 Jan 27 14:12 jiankong.sh
-rw-r--r-- 1 root root 0 Jan 27 14:12 linux_inspection_error.log
-rw-r--r-- 1 root root 2960 Jan 27 14:12 linux_inspection_report.html
-rw-r--r-- 1 root root 0 Jan 27 14:12 linux_inspection_report.txt
-rw------- 1 root root 16817 Jan 27 14:12 sent
执行记录的文件内容如下:
[root@hcss-ecs-6f98 ~]# cat linux_inspection_report.html
<!DOCTYPE html>
<html>
<head>
<title>Linux System Inspection Report</title>
</head>
<body>
<h1>Linux System Inspection Report</h1>
<p>Date:2025-01-27 14:12:24</p>
<h2>System load</h2>
<p> 14:12:24 up 4:49, 3 users, load average: 0.00, 0.00, 0.00</p>
<h2>Disk Usage</h2>
<p>Filesystem Size Used Avail Use% Mounted on
devtmpfs 389M 0 389M 0% /dev
tmpfs 405M 0 405M 0% /dev/shm
tmpfs 405M 5.6M 399M 2% /run
tmpfs 405M 0 405M 0% /sys/fs/cgroup
/dev/vda1 40G 2.9G 35G 8% /
tmpfs 81M 0 81M 0% /run/user/0</p>
<h2>Memory Usage</h2>
<p> total used free shared buff/cache available
Mem: 808 187 391 7 229 490
Swap: 0 0 0</p>
<h2>Network Status</h2>
<p>eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.5.15 netmask 255.255.240.0 broadcast 192.168.15.255inet6 fe80::f816:3eff:fe68:c5cf prefixlen 64 scopeid 0x20<link>ether fa:16:3e:68:c5:cf txqueuelen 1000 (Ethernet)RX packets 79035 bytes 68357573 (65.1 MiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 43600 bytes 7583848 (7.2 MiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536inet 127.0.0.1 netmask 255.0.0.0inet6 ::1 prefixlen 128 scopeid 0x10<host>loop txqueuelen 1000 (Local Loopback)RX packets 1454 bytes 113048 (110.3 KiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 1454 bytes 113048 (110.3 KiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</p>
<h2>Nginx Service Status</h2>
<p>● nginx.service - The nginx HTTP and reverse proxy serverLoaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)Active: active (running) since Mon 2025-01-27 09:42:01 CST; 4h 30min agoProcess: 13209 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)Process: 13206 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)Process: 13205 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)Main PID: 13210 (nginx)Tasks: 3 (limit: 4976)Memory: 5.9MCGroup: /system.slice/nginx.service├─13210 nginx: master process /usr/sbin/nginx├─13211 nginx: worker process└─13212 nginx: worker processJan 27 09:42:01 hcss-ecs-6f98 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Jan 27 09:42:01 hcss-ecs-6f98 nginx[13206]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Jan 27 09:42:01 hcss-ecs-6f98 nginx[13206]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Jan 27 09:42:01 hcss-ecs-6f98 systemd[1]: Started The nginx HTTP and reverse proxy server.</p>
</body></html>
发送到的邮箱邮件内容如下:
相关文章:

linux监控脚本+自动触发邮件发送
linux脚本 需求: CPU 负载:使用 uptime 命令,我们可以清楚地了解系统的 CPU 负载情况。这个命令会显示系统在过去 1 分钟、5 分钟和 15 分钟的平均负载。高负载可能意味着系统正在处理大量的任务,可能会导致性能下降或服务响应延迟…...

【漫话机器学习系列】066.贪心算法(Greedy Algorithms)
贪心算法(Greedy Algorithms) 贪心算法是一种逐步构建解决方案的算法,每一步都选择当前状态下最优的局部选项(即“贪心选择”),以期望最终获得全局最优解。贪心算法常用于解决最优化问题。 核心思想 贪心选…...
代码随想录算法训练营第三十八天-动态规划-完全背包-279.完全平方数
把目标值当作背包容量,每个平方数当作物品,题目变更为装满指定容量的背包,最小用几个物品会不会出现拼凑不出来的情况?不会,因为有数字1,对任意正整数百分百能拼凑出来因此此题目与上一道题就变得一模一样了…...

ts 基础核心
吴悠讲编程 : 20分钟学会TypeScript 无废话速成TS https://www.bilibili.com/video/BV1gX4y177Kf...
在RHEL 8.10上安装开源工业物联网解决方案Thingsboard 3.9
在RHEL/CentOS/Rocky/AlmaLinux/Oracle Linux 8单节点上安装 备注: 适用于单节点 是否支持欧拉??? 前提条件 本指南描述了如何在RHEL/CentOS 7/8上安装ThingsBoard。硬件要求取决于所选的数据库和连接到系统的设备数量。要在单…...

linux通过deb包安装(命令模式)
通过下载deb包安装Chrome浏览器 - lyy19s Wikihttps://lyy1119.github.io/%E8%BD%AF%E4%BB%B6%E4%BD%BF%E7%94%A8/Linux/InstallChrome/...
「Unity3D」在Unity中使用C#控制显示Android的状态栏
Unity打包的Android默认都是全屏,如果想要在真机上显示状态栏,就需要额外设置,有两种方式: 第一种,使用Android的Java代码去控制,然后以插件的方式放到Unity中,被C#调用。第二种,使…...
LLM评估优化与新技术创新综述
标题:LLM评估优化与新技术创新综述 文章信息摘要: LLM评估与优化需要采用多维度方法,包括自动基准测试、人工评估和模型自评估。RAG技术通过结合外部知识库提升模型表现,量化技术则通过降低参数精度优化资源消耗。新兴技术如模型…...
【Git】使用笔记总结
目录 概述安装Git注册GitHub配置Git常用命令常见场景1. 修改文件2. 版本回退3. 分支管理 常见问题1. git add [中文文件夹] 无法显示中文问题2. git add [文件夹] 文件名中含有空格3. git add 触发 LF 回车换行警告4. git push 提示不存在 Origin 仓库5. Git与GitHub中默认分支…...

ZZNUOJ(C/C++)基础练习1000——1010(详解版)
目录 1000 : AB Problem C语言版 C版 1001 : 植树问题 C语言版 C版 1002 : 简单多项式求和 C语言版 C版 1003 : 两个整数的四则运算 C语言版 C版 1004 : 三位数的数位分离 C语言版 C版 补充代…...
搜狐Android开发(安卓)面试题及参考答案
ViewModel 的作用及原理是什么? ViewModel 是 Android 架构组件中的一部分,主要作用是在 MVVM 架构中充当数据与视图之间的桥梁。它负责为视图准备数据,并处理与数据相关的业务逻辑,让视图(Activity、Fragment 等)专注于展示数据和与用户交互。比如在一个新闻应用中,Vie…...

WPS数据分析000007
目录 一、分列 智能分列 出生日期 数值转换 公式不运算 二、数据对比 离职员工 新入职员工 都在职的员工 三、合并计算 四、拆分表格 合并表格 一、分列 智能分列 出生日期 数据求和 文本型数字左对齐;数值型数字右对齐 数值转换 方式一: 方…...

SpringCloud系列教程:微服务的未来(十八)雪崩问题、服务保护方案、Sentinel快速入门
前言 在分布式系统中,雪崩效应(Avalanche Effect)是一种常见的故障现象,通常发生在系统中某个组件出现故障时,导致其他组件级联失败,最终引发整个系统的崩溃。为了有效应对雪崩效应,服务保护方…...
把markdown转换为pdf的方法
将 Markdown 文件转换为 PDF 有多种方法,以下是几种常见的方式: 1. 使用 VS Code 和 Markdown 插件 VS Code 是一款流行的代码编辑器,支持通过插件将 Markdown 转换为 PDF。 步骤: 安装 VS Code: 下载地址ÿ…...

Controller 层优化四步曲
Controller 层优化四步曲 前言 在开发过程中,Controller 层作为系统与外界交互的桥梁,承担着接收请求、解析参数、调用业务逻辑、处理异常等职责。 然而,随着业务复杂度的增加,Controller 层的代码往往会变得臃肿且难以维护。 …...

Python数据分析-Python语法基础,IPython和Jupyter-Notebooks(二)
title: ‘Python数据分析:Python语法基础,IPython和Jupyter Notebooks(二)’ tags: python数据分析 categories:python数据分析 keywords:python数据分析 cover: …/img/404_icecream_whale.png description: 本文介绍python的基础语法和jup…...
Nginx 开发总结
文章目录 1. Nginx 基础概念1-1、什么是 Nginx1-2、Nginx 的工作原理1-3、Nginx 的核心特点1-4、Nginx 的常见应用场景1-5、Nginx 与 Apache 的区别1-6、 Nginx 配置的基本结构1-7、Nginx 常见指令 2. Nginx 配置基础2-1、Nginx 配置文件结构2-2、全局配置 (Global Block)2-3、…...

centos7安装SVN
[rootVM-16-3-centos ~]# yum install subversion -y [rootVM-16-3-centos ~]# svnserve --version // 创建目录 [rootVM-16-3-centos ~]# mkdir -p /opt/svn/repos // 创建新的空版本库,执行后会在repos文件夹下建立多个文件,待修改 [rootVM-16-3-cento…...

LTV预估 | 多视角对比学习框架CMLTV
😄 cmltv的loss好多哟,花样好多哟~ 文章目录 1 精简总结2 背景&挑战3 方法4 实验 ✅【arxiv-2023 华为 CMLTV】《Contrastive Multi-view Framework for Customer Lifetime Value Prediction》 论文链接: https://arxiv.or…...
llama.cpp LLM_ARCH_DEEPSEEK and LLM_ARCH_DEEPSEEK2
llama.cpp LLM_ARCH_DEEPSEEK and LLM_ARCH_DEEPSEEK2 1. LLM_ARCH_DEEPSEEK and LLM_ARCH_DEEPSEEK22. LLM_ARCH_DEEPSEEK and LLM_ARCH_DEEPSEEK23. struct ggml_cgraph * build_deepseek() and struct ggml_cgraph * build_deepseek2()References 不宜吹捧中国大语言模型的同…...

Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...

docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...