脚本

脚本
 #!/bin/bash
# 获取要监控的本地服务器IP地址
IP=`/usr/sbin/ifconfig | grep inet | grep -vE 'inet6|127.0.0.1' | awk '{print $2}'` # 获取cpu总核数
cpu_num=`grep -c "model name" /proc/cpuinfo` cpu_user=`top -b -n 1 | grep Cpu | awk '{print $2}' | cut -f 1 -d "%"` # 获取内核空间占用CPU百分比
cpu_system=`top -b -n 1 | grep Cpu | awk '{print $4}' | cut -f 1 -d "%"` # 获取空闲CPU百分比
cpu_idle=`top -b -n 1 | grep Cpu | awk '{print $8}' | cut -f 1 -d "%"` # 获取等待输入输出占CPU百分比
cpu_iowait=`top -b -n 1 | grep Cpu | awk '{print $10}' | cut -f 1 -d "%"` # 获取CPU中断次数
cpu_interrupt=`vmstat -n 1 1 | sed -n 3p | awk '{print $11}'` # 获取CPU上下文切换次数
cpu_context_switch=`vmstat -n 1 1 | sed -n 3p | awk '{print $12}'` #3、获取CPU负载信息
# 获取CPU15分钟前到现在的负载平均值
cpu_load_15min=`uptime | awk '{print $12}' | cut -f 1 -d ','` # 获取CPU5分钟前到现在的负载平均值
cpu_load_5min=`uptime | awk '{print $11}' | cut -f 1 -d ','` # 获取CPU1分钟前到现在的负载平均值
cpu_load_1min=`uptime | awk '{print $10}' | cut -f 1 -d ','` # 获取任务队列(就绪状态等待的进程数)
cpu_task_length=`vmstat -n 1 1 | sed -n 3p | awk '{print $1}'` #4、获取内存信息
# 获取物理内存总量
mem_total=`free | grep Mem | awk '{print $2}'` # 获取操作系统已使用内存总量
mem_sys_used=`free | grep Mem | awk '{print $3}'` # 获取操作系统未使用内存总量
mem_sys_free=`free | grep Mem | awk '{print $4}'` # 获取应用程序已使用的内存总量
mem_user_used=`free | sed -n 3p | awk '{print $3}'` # 获取应用程序未使用内存总量
mem_user_free=`free | sed -n 3p | awk '{print $4}'` # 获取交换分区总大小
mem_swap_total=`free | grep Swap | awk '{print $2}'` # 获取已使用交换分区大小
mem_swap_used=`free | grep Swap | awk '{print $3}'` # 获取剩余交换分区大小
mem_swap_free=`free | grep Swap | awk '{print $4}'` # 总大小
disk_rate=`df -h |sed -n '6p'|awk '{print $5}'|cut -f 1 -d '%'`
# 可用
disk_used=`df -h |sed -n '6p'|awk '{print $4}'|cut -f 1 -d 'G'`
# 未使用
disk_free=`df -h |sed -n '6p'|awk '{print $3}'|cut -f 1 -d 'G'`
# 容量
disk_total=`df -h |sed -n '6p'|awk '{print $2}'|cut -f 1 -d 'G'`
time=$(date "+%Y-%m-%dT%H:%M:%S+08:00") echo "{\"@timestamp\":\"$time\",\"host\":\"$IP\",\"cpu_num\":$cpu_num,\"cpu_user\":$cpu_user,\"cpu_system\":$cpu_system,\"cpu_idle\":$cpu_idle,\"cpu_iowait\":$cpu_iowait,\"cpu_interrupt\":$cpu_interrupt,\"cpu_context_switch\":$cpu_context_switch,\"cpu_load_15min\":$cpu_load_15min,\"cpu_load_5min\":$cpu_load_5min,\"cpu_load_1min\":$cpu_load_1min,\"cpu_task_length\":$cpu_task_length,\"mem_total\":$mem_total,\"mem_sys_used\":$mem_sys_used,\"mem_sys_free\":$mem_sys_free,\"mem_user_used\":$mem_user_used,\"mem_user_free\":$mem_user_free,\"mem_swap_total\":$mem_swap_total,\"mem_swap_used\":$mem_swap_used,\"mem_swap_free\":$mem_swap_free,\"disk_rate\":$disk_rate,\"disk_used\":$disk_used,\"disk_free\":$disk_free,\"disk_total\":$disk_total}" >> /home/sys/system.json

输出结果

{
"@timestamp": "2023-02-16T09:13:17+08:00",
"host": "192.168.0.124",
"cpu_num": 4,
"cpu_user": 1.4,
"cpu_system": 2.9,
"cpu_idle": 95.8,
"cpu_iowait": 0,
"cpu_interrupt": 1,
"cpu_context_switch": 1,
"cpu_load_15min": 0.13,
"cpu_load_5min": 0.25,
"cpu_load_1min": 0.63,
"cpu_task_length": 0,
"mem_total": 7990016,
"mem_sys_used": 286220,
"mem_sys_free": 6972252,
"mem_user_used": 0,
"mem_user_free": 8257532,
"mem_swap_total": 8257532,
"mem_swap_used": 0,
"mem_swap_free": 8257532,
"disk_rate": 7,
"disk_used": 47,
"disk_free": 3.3,
"disk_total": 50
}

  

Linux 磁盘、CPU、内存获取脚本的更多相关文章

  1. linux系统CPU,内存,磁盘,网络流量监控脚本

    前序 1,#cat /proc/stat/ 信息包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累积到当前时刻 2,#vmstat –s 或者#vmstat 虚拟内存统计 3, #cat ...

  2. linux 查看CPU内存 网络 流量 磁盘 IO

    使用vmstat命令来察看系统资源情况 在命令行方式下,如何查看CPU.内存的使用情况,网络流量和磁盘I/O? Q: 在命令行方式下,如何查看CPU.内存的使用情况,网络流量和磁盘I/O? A: 在命 ...

  3. Linux查看CPU 内存命令

    查看CPU 内存命令:https://www.cnblogs.com/ggjucheng/archive/2013/01/14/2859613.html 查看某一进程内存占用:ps -ef 获取PID ...

  4. linux系统CPU内存磁盘监控发送邮件脚本

    #!/bin/bashexport PATHexport LANG=zh_CN.UTF-8###top之后输入数字1,可以查看每颗CPU的情况.###先配置好mailx邮箱账号密码:#cat>/ ...

  5. python glances来监控linux服务器CPU 内存 IO使用

    什么是 Glances? Glances 是一个由 Python 编写,使用 psutil 库来从系统抓取信息的基于 curses 开发的跨平台命令行系统监视工具. 通过 Glances,我们可以监视 ...

  6. linux 查看cpu 内存 硬盘 文件夹大小

    文件夹大小 显示cpu使用率 top 1 查看CPU 1.1 查看CPU个数 # cat /proc/cpuinfo | grep "physical id" | uniq | w ...

  7. 用python监控Linux,CPU,内存,硬盘

    #!/usr/local/bin/python3.5 #coding:utf-8 import mailll, linecache, re, socket, os, time hostname = s ...

  8. linux查看cpu内存信息

    # 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理CPU个数 cat /proc/cpuinfo| ...

  9. linux模拟cpu占用100%脚本

    转至:https://www.cnblogs.com/opma/p/11607434.html 脚本如下: #! /bin/sh # filename killcpu.sh if [ $# -ne 1 ...

  10. linux 监控CPU 内存情况

    htop

随机推荐

  1. C 语言文件处理全攻略:创建、写入、追加操作解析

    C 语言中的文件处理 在 C 语言中,您可以通过声明类型为 FILE 的指针,并使用 fopen() 函数来创建.打开.读取和写入文件: FILE *fptr; fptr = fopen(filena ...

  2. 全面的开发者文档和用户目标解析:API 文档指南和开发者旅程

    开发者文档 开发者文档,也称为 API 文档,是一种专门针对软件开发人员的技术写作形式.这种类型的文档通常包括 API 的技术规范.代码注释.软件设计和架构以及软件开发中涉及的其他详细技术描述.开发者 ...

  3. Nacos无法连接wsl2上部署的MySQL

    情况描述 在部署Nacos时,需要连接MySQL数据库管理数据,但是如果连接的是wsl2上部署的MySQL,使用127.0.0.1或者localhost,通常会出现如下错误: org.springfr ...

  4. NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(Spider vs BIRD)全面对比优劣分析[Text2SQL、Text2DSL]

    NL2SQL基础系列(1):业界顶尖排行榜.权威测评数据集及LLM大模型(Spider vs BIRD)全面对比优劣分析[Text2SQL.Text2DSL] Text-to-SQL(或者Text2S ...

  5. CentOS 安装openssh-6.XX

    安装openssh-6.0p1 1.安装依赖包 有遇到 报ZLIB有问题的,要安装以下包 rpm -ivh zlib-devel-1.2.3-3.* rpm -ivh libsepol-devel-1 ...

  6. 一周涨 15k Star 的开源项目「GitHub 热点速览」

    你训练大语言模型(LLM)用的什么框架?有没有想过不用框架训练 GPT-2? GitHub 上就有这么一位大神(Andrej Karpathy),他仅用大约 1k 行的 C 代码就完成了 GPT-2 ...

  7. Effective Python:第1条 查询自己使用的Python版本

    命令行: python --version:通常可查看python2的版本: python3 --version:通常可查看python3的版本: 代码: import sys print(sys.v ...

  8. vue3.0 中文文档(暂时)地址

    https://v3.cn.vuejs.org/ https://vue-docs-next-zh-cn.netlify.app/guide/installation.html#vue-devtool ...

  9. linux系统关闭指定端口

    linux系统关闭指定端口 关闭指定端口 firewall-cmd --zone=public --remove-port=80/tcp --permanent systemctl restart f ...

  10. 力扣27(java&python)-移除元素(简单)

    题目: 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度. 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入 ...