脚本

脚本
 #!/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. 全面指南:技术写作与编辑工具 Markdown、Git 研究工具

    技术写作工具 在技术写作领域,"工具"是指技术写作者用于创建.管理和发布高质量技术文档的各种软件和应用程序.这包括文字处理器.桌面出版应用程序.XML 编辑器.内容管理系统等等.一 ...

  2. HarmonyOS SDK,赋能开发者实现更具象、个性化开发诉求

    随着移动互联网的逐步成熟,用户的需求越来越细化.鸿蒙生态为开发者提供的HarmonyOS SDK开放能力,高效赋能美团外卖等合作伙伴实现更具象.个性化的开发诉求,给用户提供更丰富便捷的体验. 点击链接 ...

  3. sql注入--基础注入判断方法(构造闭合)

    在我们拿到一个sql注入的题目之后,在确定了注入点之后,接下来要做的事情就是进行基础注入判断. 在开始前,我们需要理解一个SQL注入中最常用的词汇 -- 构造闭合 . 对于SQL处理语句后台的写法: ...

  4. 【译】新的 MSBuild 编辑体验

    MSBuild 是 .NET 开发体验的基本组成部分,但它对新手和有经验的开发人员都具有挑战性.为了帮助开发人员更好地理解他们的项目文件,并访问需要直接编辑项目文件的高级功能,我们发布了一个实验性的 ...

  5. CentOS 8 安装更新国内清华大学源手记【亲测成功】

    一直和各种OS打交道,仍觉得自己是小白,故深知小白们的困惑和蛋碎,特此将安装更新源的细节和步骤做了详细整理,供大家参考.红字是命令和提示,深灰色代码框中是源配置,本文采用了清华大学CentOS 8的源 ...

  6. 01矩阵-【BFS】

    01矩阵 给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离.两个相邻元素间的距离为 1 ,方格斜方向不计算距离. 示例 1: 输入: [0 0 0 0 1 0 0 0 0] 输出: ...

  7. 国产gowin开发板GW1NR-9K的PSRAM使用说明

    开发板子采用GW1NNR-LV9LQ144PC6/I5 FPGA器件.具有低功耗,瞬时启动,高安全性,低成本,方便扩展等特点.本开发板价格价格便宜,板子扩张性容易,帮助用户比较快速进入国产FPGA学习 ...

  8. Vue 3 进阶用法:异步组件

    一.代码分割 一个大型前端应用,如果所有代码都放在单一文件,体积会特别大,下载时间长,白屏时间久,用户体验差. 代码分割是一种有效的优化方式.提前把代码切分为多个小块,只下载当前必需的部分,用到哪块下 ...

  9. 报错ORA-01830: date format picture ends before converting entire input string

    报错ORA-01830: date format picture ends before converting entire input string 原语句 select to_char(to_da ...

  10. 【笔记】go语言--go语言的依赖管理

    [笔记]go语言--go语言的依赖管理 GO语言的依赖管理 依赖的概念,依赖就是第三方的库,即别人已经做好的库 依赖管理的三个阶段 GOPATH,GOVENDOR, go mod 三个阶段 - GOP ...