服务器CPU、内存、磁盘、网络使用率,东方通CPU使用率东方通内存使用率监控脚本

news/2025/9/22 17:26:41/文章来源:https://www.cnblogs.com/niway/p/19105669

#!/bin/bash

# 创建日志目录
LOG_DIR="/log"
LOG_FILE="$LOG_DIR/jk.txt"

# 阈值设置
CPU_THRESHOLD=80 # CPU使用率阈值(%)
MEM_THRESHOLD=80 # 内存使用率阈值(%)
DISK_THRESHOLD=80 # 磁盘使用率阈值(%)
NET_THRESHOLD=1000 # 网络流量阈值(KB/s)
TONG_CPU_THRESHOLD=50 # 东方通中间件CPU使用率阈值(%)
TONG_MEM_THRESHOLD=70 # 东方通中间件内存使用率阈值(%)

# 创建日志目录(如果不存在)
if [ ! -d "$LOG_DIR" ]; then
mkdir -p "$LOG_DIR"
echo "创建日志目录: $LOG_DIR"
fi

# 覆盖已存在的日志文件
if [ -f "$LOG_FILE" ]; then
> "$LOG_FILE"
echo "清空现有日志文件: $LOG_FILE"
fi

# 获取当前时间戳
timestamp=$(date "+%Y-%m-%d %H:%M:%S")

# 函数:记录日志
log_message() {
echo "[$timestamp] $1" >> "$LOG_FILE"
}

# 函数:检查东方通中间件进程
check_tongweb_process() {
# 查找所有与东方通相关的进程
local tongweb_pids=$(ps -ef | grep -i "tongweb" | grep -v grep | awk '{print $2}')

if [ -n "$tongweb_pids" ]; then
echo "运行中 (PIDs: $tongweb_pids)"
return 0
else
echo "未运行"
return 1
fi
}

# 函数:获取东方通中间件的CPU使用率
get_tongweb_cpu() {
local tongweb_pids=$(ps -ef | grep -i "tongweb" | grep -v grep | awk '{print $2}')
if [ -z "$tongweb_pids" ]; then
echo "0"
return
fi

# 获取所有东方通进程的CPU使用率总和
local total_cpu=0
for pid in $tongweb_pids; do
local cpu_usage=$(ps -p $pid -o %cpu --no-headers 2>/dev/null)
if [ -n "$cpu_usage" ]; then
total_cpu=$(echo "$total_cpu + $cpu_usage" | bc)
fi
done

echo "$total_cpu"
}

# 函数:获取东方通中间件的内存使用率
get_tongweb_mem() {
local tongweb_pids=$(ps -ef | grep -i "tongweb" | grep -v grep | awk '{print $2}')
if [ -z "$tongweb_pids" ]; then
echo "0"
return
fi

# 获取所有东方通进程的内存使用率总和
local total_mem=0
for pid in $tongweb_pids; do
local mem_usage=$(ps -p $pid -o %mem --no-headers 2>/dev/null)
if [ -n "$mem_usage" ]; then
total_mem=$(echo "$total_mem + $mem_usage" | bc)
fi
done

echo "$total_mem"
}

# 函数:检查系统CPU使用率
check_cpu() {
cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d'%' -f1)
echo "$cpu_usage"
}

# 函数:检查系统内存使用率
check_memory() {
mem_usage=$(free | grep Mem | awk '{printf "%.0f", $3/$2 * 100}')
echo "$mem_usage"
}

# 函数:检查磁盘使用率
check_disk() {
disk_usage=$(df / | grep / | awk '{print $5}' | sed 's/%//g')
echo "$disk_usage"
}

# 函数:检查网络流量
check_network() {
# 获取当前网络流量(KB/s)
interface=$(ip route | grep default | awk '{print $5}' | head -n1)

if [ -z "$interface" ]; then
echo "无法确定网络接口"
return
fi

rx_bytes_prev=$(cat /sys/class/net/$interface/statistics/rx_bytes 2>/dev/null)
tx_bytes_prev=$(cat /sys/class/net/$interface/statistics/tx_bytes 2>/dev/null)

# 等待1秒再次测量
sleep 1

rx_bytes_next=$(cat /sys/class/net/$interface/statistics/rx_bytes 2>/dev/null)
tx_bytes_next=$(cat /sys/class/net/$interface/statistics/tx_bytes 2>/dev/null)

# 计算流量(KB/s)
if [ -n "$rx_bytes_prev" ] && [ -n "$rx_bytes_next" ]; then
rx_rate=$(( (rx_bytes_next - rx_bytes_prev) / 1024 ))
tx_rate=$(( (tx_bytes_next - tx_bytes_prev) / 1024 ))
echo "接收: ${rx_rate}KB/s, 发送: ${tx_rate}KB/s"
else
echo "无法获取网络流量数据"
fi
}

# 主监控函数
monitor_system() {
log_message "=== 系统监控报告 ==="

# 检查东方通中间件状态
tongweb_status=$(check_tongweb_process)
log_message "东方通中间件状态: $tongweb_status"

if echo "$tongweb_status" | grep -q "运行中"; then
# 检查东方通中间件CPU使用率
tongweb_cpu=$(get_tongweb_cpu)
log_message "东方通中间件CPU使用率: ${tongweb_cpu}%"
if (( $(echo "$tongweb_cpu > $TONG_CPU_THRESHOLD" | bc -l) )); then
log_message "警告: 东方通中间件CPU使用率超过阈值 ${TONG_CPU_THRESHOLD}%!"
fi

# 检查东方通中间件内存使用率
tongweb_mem=$(get_tongweb_mem)
log_message "东方通中间件内存使用率: ${tongweb_mem}%"
if (( $(echo "$tongweb_mem > $TONG_MEM_THRESHOLD" | bc -l) )); then
log_message "警告: 东方通中间件内存使用率超过阈值 ${TONG_MEM_THRESHOLD}%!"
fi
fi

# 检查系统CPU
cpu_usage=$(check_cpu)
log_message "系统CPU使用率: ${cpu_usage}%"
if (( $(echo "$cpu_usage > $CPU_THRESHOLD" | bc -l) )); then
log_message "警告: 系统CPU使用率超过阈值 ${CPU_THRESHOLD}%!"
fi

# 检查系统内存
mem_usage=$(check_memory)
log_message "系统内存使用率: ${mem_usage}%"
if [ "$mem_usage" -gt "$MEM_THRESHOLD" ]; then
log_message "警告: 系统内存使用率超过阈值 ${MEM_THRESHOLD}%!"
fi

# 检查磁盘
disk_usage=$(check_disk)
log_message "根分区磁盘使用率: ${disk_usage}%"
if [ "$disk_usage" -gt "$DISK_THRESHOLD" ]; then
log_message "警告: 磁盘使用率超过阈值 ${DISK_THRESHOLD}%!"
fi

# 检查网络
net_status=$(check_network)
log_message "网络流量: $net_status"

log_message "=== 监控结束 ==="
log_message "" # 空行作为分隔符
}

# 执行监控
monitor_system

echo "监控完成,结果已保存到: $LOG_FILE"

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

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

相关文章

3 网络基础知识+web基础知识+部署Server

3.1网络基础 3.1.1 OSI七层模型 # 一种理论上的网络通信模型,实践中未应用;从底层到上层分别是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层 * 物理层:物理介质传输比特流,如电缆、光缆 * 数据链路…

什么是 AutoModel

什么是 AutoModelAutoModel 加载模型”是指使用 Hugging Face Transformers 库提供的 AutoModel 系列类,根据模型名称自动识别并加载对应的预训练模型结构和权重,从而无需手动指定具体模型类(如 BertModel、GPT2Mod…

深入解析:STM32——WDG看门狗

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

wxpython图形界面_01_最小基本结构

import wx# 创建应用程序对象 app = wx.App()# 创建窗口对象 frm = wx.Frame(None, title=第一个应用程序, size=(800, 600), pos=(200, 50))# 显示窗口 frm.Show()# 进入主事件循环 app.MainLoop()

做网站最小的字体是多少网站租用 凡

介绍Objects Comparer是用于对象比较的工具,c#常见的数据结构都是可以用这个三方库进行对比,比较复杂的对象也是可以比较的。简而言之,Objects Comparer 是一个对象到对象的比较器,它允许逐个成员递归得比较对象,并为某…

漳州建设银行网站首页珠海知业科技

能实现不出家门就可以通过网络进行系统管理,交易等,而且过程简单、快捷。同样的,在人们的工作生活中,也就需要互联网技术来方便人们的日常工作生活,实现工作办公的自动化处理,实现信息化,无纸化…

万网网站域名wordpress 黄蓝 现代企业

【ADB全称 Android Debug Bridge】 是Android SDK中的一个命令行工具adb命令可以直接操作管理Android模拟器或真实的Android设备(手机) 建立PC和模拟器连接 # 建立连接 adb connect 127.0.1: 模拟器端口号〈逍遥模拟器21503〉 # 验证是否连接成功 adb d…

朝阳周边网站建设办公管理软件定制

在当今信息爆炸的时代,人工智能在各行各业都发挥着越来越重要的作用,高校教育领域也不例外。最近,越来越多的高校开始陆续拥抱chatgpt(Chatbot GPT)这一人工智能技术,在学术领域会带来了怎样的变化与影响&a…

湖南网站设计外包费用制作网页可用邮件合并吗

前情:上一篇实际是让AI工具帮我总结了一下讨论的内容,这里把讨论的过程贴出来,这个讨论是为解决实际问题 前文https://blog.csdn.net/wgdzg/article/details/145039446 问题说明: 我使用 docker compose 管理我的容器&#xff0…

陈村网站设计选择seo网站排名优化

广州大学学生实验报告 开课实验室:计算机科学与工程实验(电子楼418A) 2019年4月19日 学院 计算机科学与教育软件学院 年级、专业、班 计算机科学与技术 姓名 学号 实验课程名称 数据结构实验 成绩 实验项目名称 实验三…

做网站的第一步有没有做废品的网站

很多朋友在家中装修完时候,为了整齐和方便收纳都会把每个屋中的网口和光纤输出口集中到一起,放置到网络箱中,看起来更加整齐划一,但是装修时都不会考虑到网线要预留很长,很多时候都只留了很短的一节网线,还…

服务器总资源监控脚本

#!/bin/bash # 服务器总资源监控脚本# 功能:监测CPU个数、总内存大小、总磁盘大小 # 设置文件夹和文件路径LOG_DIR="/log"LOG_FILE="$LOG_DIR/computer.txt" # 创建日志目录(如果不存在)if [ !…

一个身体,两个身体

本文致敬刘慈欣先生的《带上她的眼睛》。 零“这次,换我带你看宇宙吧。”一 阳光依旧炽烈,透过叶片,投射在大草坪上。 那个村庄里的孩子程丽,早上八点,一如既往地打开彩电: “星桥计划即将于3017年2月27号实施,…

006_字典操作

1、创建字典、访问字典中的值、字典中添加键值对、修改字典中的值、del 永久删除字典中的键值对、get()访问字典 cars = {宝马:95,长安:92,奔驰:95,吉利:92,奥迪:95,} print(cars)# 创建一个字典 user = {} # 创建一个…

简单理解java虚拟机

简单理解java虚拟机 一、学习 JVM 的核心意义面试刚需:避免依赖死记硬背 “面试八股”,从底层理解问题本质(如 Integer 缓存、静态方法能否重写)。 基础支撑:明确代码执行逻辑,是编写高可靠性系统的前提;若不理…

网站内容页面怎么做的广州番禺人才网官网

结论:不是线程安全的 Spring容器中的Bean是否线程安全,容器本身并没有提供Bean的线程安全策略,因此可以说Spring容器中的Bean本身不具备线程安全的特性,但是具体还是要结合具体scope的Bean去研究。 Spring 的 bean 作用域&#…

东方通中间件嵌入式监控脚本

#!/bin/bash # 东方通中间件嵌入式监控脚本# 功能:监测CPU和内存使用率,保存到/log/dftqr.txt # 设置文件夹和文件路径LOG_DIR="/log"LOG_FILE="$LOG_DIR/dftqr.txt"PROCESS_NAME="skactio…

设计网站 站什么网简单的个人主页网站制作html

目录 1.对全局变量的检测能力 2.struct类型增强 3.c中所有变量和函数都必须有类型 4.c中新增的bool类型 5.三目运算符的加强 6.const的增强 7.对枚举的增强 1.对全局变量的检测能力 C语言中同时定义两个相同的全局变量编译器并不会报错,而c中就会报重定义错…

律师网站建设模板网站源码开发

字符指针变量 在指针的类型中我们知道有一种指针叫做字符指针 它的使用情况如下&#xff1a; #include<stdio.h> int main() {char pa w;char*p1&pa;*p1 a;printf("%c\n", *p1);return 0; } 在这段代码当中&#xff0c;我们将‘w’字符的地址传到了p…

引导型网站设计个人主题网站做的步骤

文章目录 前言一、什么是Windows PE格式中的导入表&#xff1f;二、解析导入表并显示1.导入表的结构2.解析导入表3.显示导入表 前言 通过分析和解析Windows PE格式&#xff0c;并使用qt进行图形化显示 一、什么是Windows PE格式中的导入表&#xff1f; 在Windows中&#xff0…