首页 > 系统相关 >Linux 磁盘、CPU、内存获取脚本

Linux 磁盘、CPU、内存获取脚本

时间:2023-02-16 09:33:54浏览次数:45  
标签:mem free CPU awk 内存 Linux print disk cpu

脚本

脚本
 #!/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
}

 

 

  

 

标签:mem,free,CPU,awk,内存,Linux,print,disk,cpu
From: https://www.cnblogs.com/bxmm/p/17125517.html

相关文章

  • 基础-Linux的netfilter和iptables
    iptables是什么?你为啥要学?Linux的网络控制模块在内核中,叫做netfilter。而iptables是位于用户空间的一个命令行工具,它作用在OIS7层网络模型中的第四层,用来和内核的netfilte......
  • Windows命令findstr文本文件中查找字符串(findstr-对应于Linux中的grep命令)
    一、实例如查找coco.names文件中的car所在的行:findstr/N/A:02carcoco.names或将全部内容(用点.代替)转出到文本文件:findstr/N/A:02.coco.names>coco.txt二、知识点......
  • linux 中 grep命令的-x选项
      grep中的-x选项表示当前行只存在匹配项时才输出。001、[b20223040323@admin1test]$lsa.txt[b20223040323@admin1test]$cata.txt##测试数据ID......
  • ArchlinuxARM 树莓派平台安装指南
    文章翻译自ArchlinuxARM->Platforms->RaspberryPi4->Installation,估计很多人都打不开,据说只有在MAC平台下才可以打开。Note:树莓派4与树莓派3相比对电源有更高......
  • Linux01
    Linux网络配置一些常见命令ctrl+alt+t//打开终端sudoaptinstallnet-tools//安装网络工具ifconfig//查看IP地址......
  • Linux 压缩文件用法
    #tar命令:可以用来压缩或解压缩文件:#压缩tar-czvffilename.tar.gzfiles#解压缩tar-xzvffilename.tar.gz#gzip命令:可以用来压缩或解压缩文件:#压缩gzipf......
  • JVM运行时内存区
    JVM运行时内存区是如何划分的?方法区(MethodArea):存储类的字节码信息、常量池堆区(Heap Area):存储对象Java方法栈(StackArea):所有方法运行时,会创建一个栈帧对象,然后进入栈(......
  • linux基础命令
    1.文件方面lscatcdrmcpmvvi或vimfinddirgrep2.系统方面ipifconfigserviceuserpasswdsudosuchmod3.符号(重定向和管道符);|>>>2>问题如......
  • Linux基础——文件权限、搜索查找、解压压缩、磁盘管理、进程管理、软件包管理
    一、文件权限Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限......
  • 认识Linux
    Linux操作系统目录结构的简介进入目录:cd使用cd可以进入其他目录例如:cdxxx(相对路径进入目录)cd/xx/xx(绝对路径进入目录)cd..返回上一级目录(向上)cd-回到上一......