当前位置: 首页 > news >正文

服务器总资源监控脚本

#!/bin/bash

# 服务器总资源监控脚本
# 功能:监测CPU个数、总内存大小、总磁盘大小

# 设置文件夹和文件路径
LOG_DIR="/log"
LOG_FILE="$LOG_DIR/computer.txt"

# 创建日志目录(如果不存在)
if [ ! -d "$LOG_DIR" ]; then
mkdir -p "$LOG_DIR"
if [ $? -ne 0 ]; then
echo "错误:无法创建日志目录 $LOG_DIR" >&2
exit 1
fi
echo "已创建日志目录: $LOG_DIR"
fi

# 覆盖已存在的日志文件
> "$LOG_FILE"

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

# 获取CPU核心数(包括物理核心和逻辑核心)
CPU_CORES=$(nproc 2>/dev/null || grep -c ^processor /proc/cpuinfo 2>/dev/null || echo "未知")

# 获取总内存大小(GB)
TOTAL_MEMORY_KB=$(grep MemTotal /proc/meminfo | awk '{print $2}')
TOTAL_MEMORY_GB=$(echo "scale=2; $TOTAL_MEMORY_KB/1024/1024" | bc 2>/dev/null || echo "未知")

# 获取磁盘总大小(GB)
# 这里获取根分区(/)的大小
DISK_SIZE_GB=$(df -BG / | awk 'NR==2 {print $2}' | sed 's/G//' 2>/dev/null || echo "未知")

# 如果上述方法失败,尝试使用另一种方法
if [ "$DISK_SIZE_GB" = "未知" ]; then
DISK_SIZE_BYTES=$(df / | awk 'NR==2 {print $2}')
DISK_SIZE_GB=$(echo "scale=2; $DISK_SIZE_BYTES/1024/1024/1024" | bc 2>/dev/null || echo "未知")
fi

# 写入日志文件
{
echo "=== 服务器资源监控报告 ==="
echo "生成时间: $TIMESTAMP"
echo "CPU核心数: $CPU_CORES"
echo "总内存大小: $TOTAL_MEMORY_GB GB"
echo "根分区磁盘大小: $DISK_SIZE_GB GB"
echo "==========================="
} >> "$LOG_FILE"

echo "服务器资源数据已保存到: $LOG_FILE"

http://www.zskr.cn/news/9697.html

相关文章:

  • 一个身体,两个身体
  • 004_元组操作
  • 代码流水线
  • 详细介绍:PHP基础-数据类型(第九天)
  • 从 “盲调” 到 “精准优化”:SQL Server 表统计信息实战指南
  • CSP-2025游寄
  • [::-1]的用法
  • 新手也能轻松上手!midas Gen 2019 安装详细图解
  • glTF/glb:现在和未来
  • bpftrace测量函数耗时
  • libero 2025.1 Run PROGRAM_SPI_IMAGE_Action 导出 SPI auto 自动升级文件
  • 负载均衡+Tomcat集群+MySQL主从 实验
  • 2025年运营商数据分类分级最佳实践、案例与方案
  • day14-Trae之一键换脸APP开发04
  • 面试常问问题——索引是不是越多越好
  • ProcessPoolExecutor VS ThreadPoolExecutor 进程池对比线程池
  • allegro17.4 布线鼠标拖动变成了ployline,重启后恢复,记得有地方设置但是一时找不到在哪儿了,有知道的网友吗?
  • 一天一款实用的AI工具,第2期,AI摘要生成工具
  • 压测指标和结果分析
  • 完整教程:Android 自定义电池组件(BatteryView)
  • 中文乱码速查表
  • 使用PySide6/PyQt6实现全国省市区的级联选择组件
  • .NET驾驭Word之力:结构化文档元素操作
  • 行稳、致远 | 技术驱动下的思考感悟
  • JDK从8升级到21的问题集
  • AutoCAD 2025 CAD 安装包中文永久免费免激活破解版下载及详细安装教程
  • 题解:AT_agc027_e [AGC027E] ABBreviate
  • 【PostgreSQL 17】11 窗口函数
  • 商家列表管理与公众号二维码绑定​,方便对用户进行消息通知提醒
  • linux权限细化管理的三种方法:polkit sudoer doas做权限管理