Linux 磁盘、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 }
哇!又赚了一天人民币
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库